×
サイバー攻撃について

DjangoはCSRF Cookieにランダムな秘密値を保存します。

フォームに入るトークンは、BREACH攻撃を軽減するため、秘密値をそのまま出力せず、リクエストごとにランダムなマスクを加えた値です。

受信時にはマスクを解除し、Cookie内の秘密値と比較します。

さらに、Djangoは次の検証も行います。

  • GET、HEAD、OPTIONS、TRACE以外を検査

  • CSRF Cookieの存在確認

  • フォームまたはヘッダーのトークン確認

  • Originヘッダー検証

  • HTTPSでOriginがない場合の厳格なReferer検証

  • CSRF_TRUSTED_ORIGINSとの照合

Django公式ドキュメントでは、ログイン時にCSRF秘密値を変更し、フォーム側トークンを毎回異なるマスクで出力する構造が説明されています。


7. 防御方式の評価