意図しないリクエスト送信 - CSRF(クロスサイトリクエストフォージェリ)
ログイン済みのユーザーに意図しないリクエストを送信させる攻撃。
概念図
攻撃シナリオ
GET リクエストを悪用した CSRF
bash
<img src="https://bank.com/transfer?to=attacker&amount=10000">CSRF の仕組み
被害者がログイン済みのサイト(銀行サイトなど)に対して、攻撃者が用意した罠ページから知らないうちにリクエストを送信させます。
ブラウザは自動的に Cookie を送信するため、サーバー側は正規ユーザーからのリクエストと区別できません。
重要な操作(送金、パスワード変更、メールアドレス変更など)が標的になります。
対策
- CSRF トークン: リクエストごとに一意のトークンを埋め込み、サーバー側で検証する
- SameSite Cookie: Cookie の送信条件を制限する(
SameSite=LaxまたはStrict) - Origin ヘッダの検証: リクエスト元のオリジンを確認する
- 重要な操作の再認証: パスワード変更時にパスワード再入力を求める
関連トピック
XSS(クロスサイトスクリプティング)- 悪意あるスクリプトを Web ページに注入する攻撃手法。反射型・格納型・DOM Based の 3 種類がある。 Content Security Policy (CSP)- ブラウザが読み込めるリソースの種類やオリジンを制限する HTTP ヘッダ。XSS の被害を大幅に軽減できる。 セッション管理- ユーザーの認証状態を維持する仕組み。セッション固定攻撃やセッションハイジャックへの対策が重要。 クリックジャッキング- 透明な iframe を重ねて、ユーザーに意図しないクリックをさせる攻撃。 セキュアコーディングの基本- 安全なコードを書くための基本原則。入力検証・最小権限・エラーハンドリングの3原則で大半の脆弱性を防止できる。 