top.location 強制リダイレクト
iframe 内から親ウィンドウ全体を別 URL へ遷移させ、sandbox allow-top-navigation の違いを確認します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | ブロック |
sandbox="" (最も厳格) | ブロック |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/top-redirect?lang=ja" title="XSS Playground - top.location 強制リダイレクト" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実行
// ログなし
解説
- same-origin frame は
window.top.locationで最上位ページを変更できます。cross-origin frame は最新ブラウザでは通常、ユーザー操作後にのみ許可されます。SOP は読み取りを止めますが、この navigation surface を完全には代替防御しません。 allow-top-navigationを sandbox に付けなければブロックできます。sandbox="allow-scripts"だけでもブロックされます。- 信頼されたサービス内でユーザーが何かをクリックした直後、タブ全体がフィッシングサイトへ置き換わるため攻撃価値は高いです。