タグ別アーカイブ: session

Pyramidのセッション機能を使う(3)〜CSRF対策〜

PyramidのSessionFactoryを実装するさいにimplementが必要になるISessinインタフェースですが、ここではCSRF対策に関わる機能が規定されています。
CSRF対策に利用するトークンを発行する機能です。
=>トークンをどう使うかは実装者に委ねられています。当然ですが。

CSRFトークンの新規発行は以下のように行います。
token = request.session.new_csrf_token()

new_csrf_tokenメソッドによりトークンを発行します。
このとき、トークンがセッションに自動で格納されます。

発行済みのトークン取得するには以下のように、get_csrf_tokenメソッドを実行します。
token = request.session.get_csrf_token()

セッションに格納されている発行済トークンを取得します。
取得できなかった場合は、新規トークンを発行します。

続きを読む Pyramidのセッション機能を使う(3)〜CSRF対策〜

Pyramidのセッション機能を使う(2)〜Beakerを使う〜

前回はPyramidのUnencryptedCookieSessionFactoryConfigを使ったセッションの利用方法を確認しました。
UnencryptedCookieSessionFactoryConfigでは、容量やセキュリティの面で実際のアプリケーション開発には使いづらいので、今回はBeakerというライブラリを使ったセッション管理を試してみます。
BeakerはPyramidに特化したものではなく、PythonのWebアプリケーションにセッション機能とキャッシュ機能を提供してくれるライブラリです。
これをPyramidで簡単に利用できるようにしてくれるラッパーが、pyramid_beakerです。

それぞれインストールしますが、pyramid_beakerをインストールすればBeakerもインストールされます。
pip install pyramid_beaker

続きを読む Pyramidのセッション機能を使う(2)〜Beakerを使う〜

Pyramidのセッション機能を使う(1)

今回はPyramidでのセッション管理について確認します。
セッション管理については以下に公式ドキュメントがあります。

Pyramidで用意しているセッション管理の方法は、cookieにセッション値を書き込む形式のものです。
UnencryptedCookieSessionFactoryConfigというSessionFactoryを使います。
ドキュメントでも注意されていますが、クラス名の通り、Unencryptedな値をcookieに書き込むのでセキュアである必要が無い場合以外では使うべきではありません。
またcookie値は書き込める容量に限りがあるので、現実的には実際のアプリケーション開発では使えないと思います。
続きを読む Pyramidのセッション機能を使う(1)