navigator.sendBeacon / fetch による exfiltration
iframe 自身の origin 内で収集した情報や referrer を sendBeacon / fetch で外部送信できるか確認します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | 動作 |
sandbox="" (最も厳格) | ブロック |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/beacon-exfil?lang=ja" title="XSS Playground - navigator.sendBeacon / fetch による exfiltration" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実行
document.referrer
-navigator.userAgent
-// ログなし
解説
- iframe 内で発生したクリックやキー入力はその iframe の origin に属するため、自由に収集できます。偽入力欄を置けばユーザーが入力したパスワードも収集できます。
document.referrerから親ページの origin / path を確認できます (Referrer-Policy に依存)。どの文書、投稿、ダッシュボードに埋め込まれたか追跡できます。- これは実データ送信に最も近いシナリオです。対策は
sandbox=""で JS 自体を止めるか、host allowlist で信頼ドメインだけ許可することです。