img タグ GET リクエスト CSRF
img.src に外部の状態変更 GET endpoint を入れ、cookie 付きで request が送られるか確認します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | 動作 |
sandbox="" (最も厳格) | 動作 |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/csrf-image?lang=ja" title="XSS Playground - img タグ GET リクエスト CSRF" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実行
// ログなし
解説
- 最も古い CSRF 形態です。
<img src="https://target/action?a=b">だけでユーザーの cookie とともに GET request が送られます。 - sandbox が空でも img request は送られます。止めるには CSP
img-src、または HTML 描画時の img src host 検証が必要です。 - ターゲットが SameSite=Lax cookie を使う場合、cross-site GET では cookie が付かず CSRF 影響は小さくなります。ただし IP 露出、tracking pixel、internal-only endpoint への ping は残ります。
- 多くの editor / CMS は img タグを許可するため、この面を閉じるには host allowlist または CSP が必要です。