(機械翻訳) pyramid.csrf
¶
-
class
LegacySessionCSRFStoragePolicy
[ソース]¶ セッションへのCSRFストレージの制御を代行するCSRFストレージポリシー。
このポリシーは、 `` ISession.new_csrf_token``と `` ISession.get_csrf_token``を介してCSRFトークンを管理する方法を知っているレガシーISession実装との互換性を維持します。
このCSRF実装を使用するには、a:term: `session factory`が設定されている必要があります。
バージョン 1.9 で追加.
-
class
SessionCSRFStoragePolicy
(key='_csrft_')[ソース]¶ セッションでCSRFトークンを保持するCSRFストレージポリシー。
このCSRF実装を使用するには、a:term: `session factory`が設定されている必要があります。
``キー ``
CSRFトークンが格納されるセッションキー。デフォルト: _csrft_。バージョン 1.9 で追加.
-
class
CookieCSRFStoragePolicy
(cookie_name='csrf_token', secure=False, httponly=False, domain=None, max_age=None, path='/')[ソース]¶ 「OWASP CSRFガイドライン」の「Double Submit Cookie」メソッドとして知られている認証されていないクッキーに情報を格納する代替CSRF実装<https://www.owasp.org/index.php/ Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet# Double_Submit_Cookie> `_。フロントエンドサーバーでトークンを生成して検証できるようになるため、スケーリングに関していくつかの柔軟性があります。
バージョン 1.9 で追加.
-
get_csrf_token
(request)[ソース]¶ 渡されたリクエストに対して現在アクティブなCSRFトークンを取得し、存在しない場合は `` new_csrf_token(request) ``を使って新しいCSRFトークンを生成します。これにより、選択されたCSRF保護の実装で同等のメソッドが呼び出されます。
バージョン 1.9 で追加.
-
new_csrf_token
(request)[ソース]¶ 渡された要求に対して新しいCSRFトークンを生成し、実装定義の方法で永続化します。これにより、選択されたCSRF保護の実装で同等のメソッドが呼び出されます。
バージョン 1.9 で追加.
-
check_csrf_origin
(request, trusted_origins=None, raises=True)[ソース]¶ リクエストの `` Origin``をチェックして、クロスサイトリクエストかどうかを調べます。
`` Origin``や `` Referer``ヘッダーで指定された値が信頼できる起点ではなく、 `` raise``が `` True``の場合、この関数は:exc: ピラミッドを生成します。 exceptions.BadCSRFOrigin`例外がありますが、 ` raise``が `` False``の場合、この関数は代わりに `` False``を返します。 CSRF起点チェックが成功した場合、この関数は無条件に `` True``を返します。
追加の信頼できる起点は、 `` ['example.com'、 'dev.example.com:8080'] ``のような非標準的な場合はドメインのリストを `` trusted_origins``に渡すことで追加できますパラメータ。 `` trusted_origins``が `` None``(デフォルト)の場合、この追加ドメインのリストは `` pyramid.csrf_trusted_origins``設定から引き出されます。
`` request.scheme``が `` https``でなければ、この関数は何もしません。
バージョン 1.7 で追加.
バージョン 1.9 で変更: mod: pyramid.session`から:mod: pyramid.csrf`に移動しました。
-
check_csrf_token
(request, token='csrf_token', header='X-CSRF-Token', raises=True)[ソース]¶ :class: pyramid.interfaces.ICSRFStoragePolicy`実装から返されたCSRFトークンを、 request.POST.get(token) (POSTリクエストの場合)または request.headers.get(header ) `。この関数に `` token``キーワードが与えられていない場合、文字列 `` csrf_token``が `` request.POST``のトークンを検索するために使われます。この関数に `` header``キーワードが与えられていない場合、文字列 `` X-CSRF-Token``が `` request.headers``でトークンを検索するために使われます。
post:またはheaderで指定された値が:class: pyramid.interfaces.ICSRFStoragePolicy`で検証できず、 raise``が True``の場合、この関数は:exc: pyramid.exceptions .BadCSRFToken`例外です。値が異なり、 `` raise``が `` False``の場合、この関数は `` False``を返します。 CSRFチェックが成功すると、この関数は無条件に `` True``を返します。
CSRF攻撃に対して自動的にアプリケーションを保護する方法については、ref: `auto_csrf_checking`を参照してください。
バージョン 1.4a2 で追加.
バージョン 1.7a1 で変更: 要求のクエリー文字列で渡されたCSRFトークンは、もはや有効とみなされません。要求本体またはヘッダーのいずれかに渡す必要があります。
バージョン 1.9 で変更: mod: pyramid.session`をmod: pyramid.csrf`に移動し、configured:class: `pyramid.interfaces.ICSRFStoragePolicy`を使用してCSRFトークンを検証するように更新しました。