ホームページ  >  記事  >  バックエンド開発  >  Python での Tornado のセキュア Cookie メカニズムの説明

Python での Tornado のセキュア Cookie メカニズムの説明

不言
不言転載
2018-10-19 17:27:372422ブラウズ

この記事では、Python での Tornado セキュリティ Cookie メカニズムについて説明します。一定の参考値があります。困っている友人は参照してください。お役に立てれば幸いです。

Cookie は、ユーザーの身元を識別するために多くの Web サイトによってユーザーのローカル端末 (クライアント側) に保存されるデータです。Tornado の RequestHandler.get_cookie() と RequestHandler.set_cookie() を使用すると、簡単に読み取ることができます。そしてクッキーを書き込みます。

例: Cookie の単純な読み取りと書き込み

import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        global session_id
        if not self.get_cookie("session"):
            self.set_cookie("session",str(session_id))
            session_id+=1
            self.write("设置新的session")
        else:
            self.write("已经具有session")

if __name__ == '__main__':
    app=tornado.web.Application([
        ("/",MainHandler)
    ])
    app.listen("8888")
    tornado.ioloop.IOLoop.current().start()

この例では、get_cookie() 関数を使用して、Cookie 名 [セッション] が存在するかどうかを判断します。 New session_id.

実際のアプリケーションでは、この例のようにセッション情報を保存するために Cookie がよく使用されます。
Cookie は常にクライアント側に保存されるため、改ざんされないように保存する方法はサーバー側のプログラムで解決する必要があります。
Tornado は Cookie の情報暗号化メカニズムを提供し、クライアントが Cookie のキー値を自由に解析および変更することを不可能にします。

例: セキュア Cookie

コード:

import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        global session_id
        #get_secure_cookie代替get_cookie
        if not self.get_secure_cookie("session"):
            #set_secure_cookie代替set_cookie
            self.set_secure_cookie("session",str(session_id))
            session_id+=1
            self.write("设置新的session")
        else:
            self.write("已经具有session")

if __name__ == '__main__':
    app=tornado.web.Application([
        ("/",MainHandler)
    ],cookie_secret="JIA_MI_MI_YAO")
    app.listen("8888")
    tornado.ioloop.IOLoop.current().start()

上記の単純な Cookie の例を比較すると、違いがわかります:

  • cookie_secret パラメータは、tornado.web.Application オブジェクトの初期化時に割り当てられ、このパラメータの値は、この Web サイトの Cookie を暗号化するために使用されるキーを保存するために使用される文字列です。

  • Cookie を読み取る必要がある場合は、元の RequestHandler.get_cookie 呼び出しの代わりに RequestHandler.get_secure_cookie を使用します。

  • 元の RequestHandler.set_cookie 呼び出しを、Cookie を書き込む必要がある RequestHandler.set_secure_cookie に置き換えます。 Cookie について心配する必要があります。偽造の問題は解決されましたが、暗号化キーとしての cookie_secret パラメータ値は十分に保護され、漏洩されないようにする必要があります。

以上がPython での Tornado のセキュア Cookie メカニズムの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。