AI活用の教科書
セキュリティ開発テストむずかしい3分で読了

CSRF

Cross-Site Request Forgeryしーえすあーるえふ

ひとことで言うと

ログイン中のユーザーをだまして、本人が望まない操作をこっそり実行させる攻撃のことです。

📖 もうちょい詳しく

何が新しいの?

CSRF(しーえすあーるえふ)は「クロスサイト・リクエスト・フォージェリ」の略で、けっこう古くからあるウェブの攻撃です。新しい技術というより、ログイン状態を悪用する古典的なねらい方です。多くのサイトが「ログイン中かどうか」を自動で見分ける仕組みを持っているため、その自動判定のすきを突きます。

どうやって動いてるの?

ブラウザは一度ログインすると、サイトごとの合言葉(クッキーと呼ばれる小さなデータ)を持ちます。やっかいなのは、別のあやしいページから元のサイトへ操作を送っても、ブラウザがその合言葉を自動でくっつけてしまう点です。攻撃者はこれを利用し、利用者が気づかないうちに「送金して」「設定を変えて」という命令を本人のふりで送らせます。

何ができるの?

攻撃する側にとっては、本人の意図しない送金や、登録メールアドレスの書き換え、パスワード変更などを実行できてしまいます。守る側はこれを防ぐために、操作のたびに「合言葉に加えた、もう一枚の確認札(CSRFトークン)」を求める作りにします。

🌱 身近なたとえ

銀行の窓口で例えると分かりやすいです。あなたの会員カード(クッキー)さえあれば手続きできる窓口だと、カードを横から使われた瞬間に勝手な手続きが通ってしまいます。そこで「その場で渡した、使い捨ての整理券(トークン)も一緒に出してください」という追加ルールを作れば、券を持たない他人の命令ははじけます。

✅ まず覚えるポイント

  • CSRFは「ログイン中の本人になりすまして操作を送らせる」攻撃です。
  • ブラウザがクッキー(合言葉)を自動送信する性質を悪用します。
  • ねらわれるのは送金・設定変更・パスワード変更など「実行する操作」です。
  • 防御の定番は「使い捨ての確認札(CSRFトークン)」を毎回確認することです。
  • クッキーに SameSite という設定をつけると、外部サイトからの送信を抑えられます。

🧭 よくある勘違い

パスワードを盗む攻撃なの?

いいえ、CSRFはパスワードそのものを盗む攻撃ではありません。すでにログイン済みの状態を借りて、本人のかわりに操作を実行させる手口です。情報を「見る」より、何かを「やらせる」ことが目的になりがちです。

ログインしていなければ安全?

基本的に、ログインしていない人を狙ってもうまみは小さいです。CSRFはログイン状態(クッキーで本人と見なされている状態)があってこそ成立するため、ログアウト中は被害が出にくい傾向があります。ただし安心しきらず、サイト側の対策があることが前提です。

XSSと同じもの?

別物です。XSS(あやしいスクリプトをページに混ぜ込む攻撃)は「中身を書き換える」方向、CSRFは「本人になりすまして操作を送る」方向です。ねらい所がちがうので、対策も別々に用意します。

🧩 関連して覚えると楽な言葉

  • Cookie(クッキー): ブラウザがサイトごとに持つ小さな合言葉データ。CSRFが悪用する相手です。
  • セッション: ログイン状態を保つ仕組み。本人とみなす根拠になります。
  • XSS: ページに悪意あるスクリプトを混ぜる別系統の攻撃。混同しやすい相手です。
  • 認証: 「あなたは本人か」を確かめる仕組み。CSRF対策はこの周りで効きます。

🏁 ひとことでまとめ

CSRFは、あなたのログイン状態をこっそり借りて、望まない操作を代わりに実行させる攻撃です。