コンテンツへスキップ
uencoder

CSRF

CSRF(クロスサイトリクエストフォージェリ)は、攻撃者がログイン中のユーザーを騙して、知らないうちに悪意あるリクエストを対象サイトへ送らせる脆弱性である。

目的

攻撃者が被害者のセッションを借りて不正な操作を行うのを防ぐ。

メカニズム

攻撃者は対象サイトへリクエストを送る <form> や <img> を含む悪意あるページを設置する。ブラウザはクッキーを自動的に付加し、サーバーはそれをユーザー本人と誤認する。防御策: CSRF トークン(同期トークン)、SameSite クッキー、Origin/Referer ヘッダーの確認。

ユースケース

  • なりすましの銀行振込
  • アカウント設定の変更
  • 投稿やコメントの送信
  • データ削除の操作

例

  • 入力
    <form action="bank.com/transfer" method="POST">
    Output
    Transfer initiated riding on cookies

    Cross-site forgery

よくあるエラー

Relying solely on cookie authentication without a CSRF token
Add a CSRF token or SameSite=Strict

関連用語

References