クロスサイト・リクエスト・フォージェリ(forgery=偽造)は,踏み台サーバーを閲覧したユーザーから攻撃対象となっているWebサーバーに対し,閲覧者が意図していないHTTPリクエストを送らせる攻撃手法です。CSRF(またはXSRF)と呼ぶこともあります。

 CSRFは,掲示板への書き込みを実行するURLをクリックさせるなどの攻撃手法として,比較的古くから知られています。2005年ころに,ログインが必要なWebサイトを攻撃対象としたCSRFが登場し始めたことから,大きな被害につながる恐れのある攻撃手法として認識されるようになりました。

 攻撃者は踏み台サーバーに,攻撃対象サーバーへのリクエストを発行するリンクやスクリプトを挿入しておきます。このリンクやスクリプトは,踏み台サーバーを閲覧したユーザーのブラウザに送り込まれます。閲覧者が誤ってこのリンクをクリックするなどの操作をすると,攻撃対象サーバーへのリクエストが発行されます。

 ログインが必要なサイトの中には,一度ログインしたマシンから再度そこにアクセスしたときに,ログイン処理を自動的に実行する場合があります。CSRFはそのようなサイトに対して,深刻な被害を及ぼす恐れがあります。

 例えば,パスワードの変更やオンライン銀行での送金処理などを外部から挿入されたリンクやスクリプトで実行できるようにしていると,あたかもユーザー本人の意思で操作したかのようにそれらを実行されてしまいます。パスワードを変更されると,本人になりすましてログインされる可能性も生じます。

 一般的なCSRF対策としては,CSRFを仕掛ける側が知り得ない情報をリクエストに含めないと処理が進まない仕組みを作り込むことが挙げられます。例えば,パスワード変更時に,変更前のパスワードを併せて入力させるようにします。こうすると,外部から挿入したスクリプトだけでは変更できなくなります。