主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Python: クッキーにsecure属性を付加する

                
 スラドで盗聴されたくないはずのクッキーにsecure属性が付加されていないケースがまだあるという話題があった。
http://security.slashdot.jp/story/14/12/17/0941232/HTTPSを使っているのにCookieに「secure」属性を設定していない危険なサイトが話題に
 secure属性をつけたクッキーはHTTPSでしかやり取りされなくなる。だから盗聴耐性が生まれる。一方で「うちはHTTPSでしかWebページを公開していない。だからクッキーにsecure属性をつけなくても安全だ」という理屈はとおらない。
 たとえばこのブログがHTTPSでしか公開されていないとして、"https://elicon.blog57.fc2.com/"のどっかで認証管理を済ませてsecure属性が外れたクッキーを取得したとする。このクライアントになんらかの方法で"http://elicon.blog57.fc2.com/"のリンクを踏ませる。ブラウザにはおそらくエラーが返ってくるが、リクエスト送信のときにsecure属性のついてないクッキーは必要情報として送信される。ネットワーク経路に中間者がいればそれが盗聴される。

 ここでもXSRF対策を扱った記事でクッキーにsecure属性を付加してきた。今一度Pythonのこれまで触ったWebフレームワークでどうやってクッキーにsecure属性をつけるかまとめておく。

・GoogleAppEngine(webapp2)
class Foo(webapp2.RequestHandler):
def get(self):
self.response.set_cookie("_xsrf", token, secure=True)


・Tornado
class Foo(tornado.web.RequestHandler):
def get(self):
self.set_cookie("_xsrf", token, secure=True)

 TornadoでRequestHandlerを継承したクラスを作ると、上記以外にset_secure_cookieというメソッドが使える。だがそれはクッキーにsecure属性を付加するものではないので注意。
http://tornado.readthedocs.org/en/stable/guide/security.html

・Django
 使ったことがないけどどうTornadoで書くときにどう実装してるのか参考にしたくて調べたことがある。ドキュメントの下記の”Use ‘secure’ cookies.”という項が参考になるはず。
https://docs.djangoproject.com/en/dev/topics/security/#ssl-https
            

コメントの投稿

非公開コメント

プロフィール

Matoba

Author:Matoba

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。