postMessage スプーフィング
parent.postMessage で親ページへ偽メッセージを送り、origin 検証漏れを確認します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | 動作 |
sandbox="" (最も厳格) | ブロック |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/post-message?lang=ja" title="XSS Playground - postMessage スプーフィング" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実行
target origin
// ログなし
解説
- postMessage は cross-origin 通信用の API です。SOP は止めないため、親側で event.origin 検証が必要です。
- 親ページが決済ウィジェット、iframe-resizer、YouTube IFrame API などの message listener を持つ場合、その形式を真似たメッセージが攻撃面になります。
- 対策は
event.origin検証と message type/schema 検証です。sandbox ではsandbox=""のみ postMessage 自体を止めます。