この記事では、次の内容を理解できます。
CSRFで何が起きるのか
CSRFとXSS、CORS、クリックジャッキングの違い
CSRFの歴史と現代までの変化
フォーム型、ログインCSRF、API型などの攻撃分類
CSRFトークンが防御になる理由
Synchronizer TokenとDouble Submit Cookieの違い
SameSite Cookieだけでは不十分な理由
DjangoのCSRF防御の内部構造
Djangoテンプレート、Fetch、Axios、DRFでの実装
403エラーの確認方法
Nginx、Cloudflare、WAFでできる補助対策
テスト方法と再発防止策
対象読者は次のとおりです。
DjangoでWebアプリケーションを開発している人
Cookie認証を利用している人
REST APIやSPAを開発している人
CSRFとXSSの違いを整理したい人
セキュリティ試験やWeb診断を学習している人
自社サービスのCSRF設定を点検したい運用担当者
主な前提環境は次のとおりです。
Python 3.12以降
Django 5.2 LTSまたはDjango 6.0系
HTTPS
Nginxなどのリバースプロキシ
Cookieベースのセッション認証
DjangoテンプレートまたはJavaScriptフロントエンド