Home / 用語 / CSRF

CSRF

※本ページにはプロモーション(広告)が含まれています

セキュリティ

読みシーサーフ
英語Cross-Site Request Forgery

💡 ひとことで言うと

ログイン中のユーザーの意図しない操作を別サイトから強制実行させる攻撃。設定変更や送金などの被害を引き起こす。

詳しい解説

CSRF(クロスサイトリクエストフォージェリ)は、ログイン済みのユーザーが別の悪意あるサイトにアクセスした際、そのサイトから元のサービスに対して意図しないリクエスト(設定変更・投稿・送金など)を送信させる攻撃です。ユーザー自身のブラウザから正規のCookieを付けて送られるため、サーバー側はユーザーの本人意思によるリクエストと見分けがつかず、処理を受け付けてしまいます。

攻撃の流れは、①ユーザーがサービスAにログインしたまま、別タブで悪意あるサイトBを開く、②サイトBに埋め込まれた画像タグやフォームが、自動的にサービスAへリクエストを送る、③サービスAはCookie付きリクエストを正規のものとして処理する、というものです。結果として、メールアドレス変更・パスワード変更・送金処理・退会処理などが勝手に実行されてしまいます。

防御の基本は『CSRFトークン』です。サーバー側がフォーム表示時にランダムなトークンを発行し、送信時に必ず照合することで、外部サイトからのリクエストは通らなくなります。加えて、①CookieへのSameSite=Lax/Strict属性付与、②重要操作での再認証要求、③Referer/Originヘッダー検証、④GETリクエストで状態変更を行わない設計原則、⑤重要操作後の確認画面挿入、などを多層的に組み合わせます。

モダンなフレームワーク(Laravel・Rails・Django・Spring等)はCSRFトークン機能を標準装備しており、デフォルト設定を外さないことが最良の防御となります。古いシステムやカスタム実装では見落とされがちで、ペネトレーションテスト時に頻出する指摘事項です。

📘 具体的な場面

ユーザーがあるSNSにログインしたまま、別タブで攻撃者の用意した画像投稿サイトを開いたとします。ページ内には見えないフォームが仕掛けられており、自動送信によりSNS上で勝手に迷惑投稿が行われてしまう、というのがCSRFの典型です。SNS側がリクエストごとにCSRFトークンを検証していれば、外部サイトからの自動送信は受理されず攻撃は失敗します。

別の呼び方

シーサーフ
XSRF
クロスサイトリクエストフォージェリ
Cross-Site Request Forgery

関連する用語

この用語に関する関連記事

Check Also

Klipsch Reference Premiereのポートプラグ対処法

【2026年最新版】Klipsch Reference Premiereのポートプラグ対処法【完全ガイド】

Klipsch Referen …