CSRF(クロスサイトリクエストフォージェリ)は、あるサイトに ログイン中の利用者をだまして、本人の意図しない操作を裏で実行させる 攻撃です。「シーサーフ」と読みます。
利用者がログイン状態のとき、ブラウザは自動でその Cookie を送ります。攻撃者はこれを悪用します。
sequenceDiagram participant U as 利用者(銀行にログイン中) participant T as 罠サイト participant B as 銀行サイト U->>T: 罠サイトを閲覧 T->>B: 利用者になりすまし送金リクエスト Note over B: Cookieが自動で付くため<br/>本人の操作に見えてしまう
罠サイトの画像やボタンを踏んだだけで、本人になりすまして送金や設定変更が行われる恐れがあります。
防御には、次のような仕組みが使われます。
- CSRFトークン … 正規の画面から発行した秘密の合言葉を、操作時に確認する。罠サイトはこれを知らないため失敗する。
- SameSite Cookie … 他サイト経由のリクエストにはCookieを送らないようにする。
- 重要操作で再確認 … パスワード再入力などを求める。
XSS が「スクリプトを実行させる」攻撃なのに対し、CSRFは「正規のリクエストを勝手に送らせる」攻撃、という違いがあります。