CSRF(Cross-Site Request Forgery)はログイン済みのユーザーに、 意図しないリクエストを正規サイトに送信させる攻撃です。 被害者がWebサービスにログインした状態で攻撃者の罠ページを開くと、 被害者の認証情報を使って不正な操作(送金・設定変更・データ削除など)が実行されます。
ブラウザは同じドメインへのリクエストに自動的にCookieを付与します。 CSRFはこの仕組みを悪用します。ユーザーが銀行サービスにログインした状態で 攻撃者の罠ページを開くと、罠ページから銀行サービスへのリクエストが ユーザーのCookieとともに自動送信されてしまいます。
CSRFはブラウザのCookie自動送信という正常な仕組みを悪用した攻撃です。 CSRFトークンとSameSite Cookie属性の2つを実装するだけで大部分の攻撃を防げます。 DjangoやLaravelなどのモダンなWebフレームワークはデフォルトでCSRF対策が組み込まれているため、 フレームワークの機能を無効化しないことが重要です。