popup / window.open スパム
window.open で新しい window を開き、popup blocking、allow-popups、opener/tabnabbing 境界を確認します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | ブロック |
sandbox="" (最も厳格) | ブロック |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/popup-spam?lang=ja" title="XSS Playground - popup / window.open スパム" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実行
// ログなし
解説
- ブラウザはユーザー操作なしの window.open をブロックしますが、ユーザーが iframe 領域を一度クリックした直後なら通ることがあります。
sandboxにallow-popupsがなければ popup はブロックされます。任意ホスト iframe を許可するなら、この keyword は外すべきです。- popup が opener と同一 origin なら opener 経由の tabnabbing も可能です。cross-origin 親への直接影響は少ないですが、
opener.location書き込みは cross-origin でも許可される点に注意してください。