×
サイバー攻撃について

CSRFトークンなしの状態変更リクエストが403になるか確認します。

実行場所

管理端末です。

curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data 'display_name=test' \
  https://staging.example.com/profile/update/

正常例

HTTP/2 403

異常例

HTTP/2 200
HTTP/2 302

判断方法

200や更新完了画面への302が返る場合は、次を確認します。

  • csrf_exemptが付いていないか

  • ミドルウェアが無効でないか

  • GETでも更新できないか

  • 独自APIが検証を迂回していないか

ログインが必要なエンドポイントでは、未認証のためログイン画面へ302になる場合があります。

正確な検証には、テストユーザーのセッションCookieを使い、CSRFトークンだけを除いた状態で確認します。


17-5. Djangoテストを書く