リソース · 116
postMessage:送信元、ウィンドウ、要求を検証する
iframeやポップアップの通信契約で想定外の送信者とデータを拒否します。
更新済み · 3 min
このガイドが達成するのに役立つこと
- 相手とメッセージ型を決める
- 作用の前に検証する
- 移動と契約外メッセージを試す
クイックチェック
- origin、ウィンドウ、型、最小データの契約。
- 検証順序と業務作用のない拒否。
- 拒否一覧とリスナーの整理。
手順
- 1
相手とメッセージ型を決める
許可する正確なorigin、期待するウィンドウ参照、必要な型を記録します。機密データには明確なtargetOriginを使います。originは方式、ホスト、ポートを含み、ドメインの部分文字列では相手を確認できません。
origin、ウィンドウ、型、最小データの契約。
- 2
作用の前に検証する
event.originと、この連携ではevent.sourceを期待するウィンドウと比較します。構造、許可値、処理状態を確認し、evalやHTML挿入をせずデータとして扱います。許可originもサーバー側の権限確認を代替しません。
検証順序と業務作用のない拒否。
- 3
移動と契約外メッセージを試す
類似ドメイン、別ポート、同じoriginの別ウィンドウ、不正な項目、終了後のメッセージを試します。不要なリスナーを削除し、終了した通信を無効化します。移動後も返信先は事前承認したoriginに限定します。
拒否一覧とリスナーの整理。
再現できる受け入れ事例
架空の例です。顧客や実際の観測結果を示すデータではありません。
事例の入力を見る
{
"allowed_origin": "https://widget.example",
"observed_origin": "https://widget.example",
"expected_window": "active_iframe",
"observed_window": "another_window",
"payload_schema_valid": true,
"expected": "reject_without_effect"
}期待される判断
架空例:https://widget.exampleは許可済みですがevent.sourceは別ウィンドウです。契約は有効なiframeを要求します。命令を出さず拒否します。
受け入れ確認ノート
このガイドの基準に沿って観測を記録します。記録は認証ではありません。
自動保存されません。離れる前に書き出してください。
絞り込みは書き出しを制限しません。対応事項は問題と未確認の基準です。
読み込みは確認後に現在の観測を置き換えます。
管理指標
| 指標 | 測定対象 | 最初のアクション |
|---|---|---|
| 拒否した想定外ケース | 作用なしで拒否した異常ケース / 実行した異常ケース | origin、ウィンドウ、状態を記録 |
| 完了した許可通信 | 完了した正常シナリオ / 試した正常シナリオ | 受信と確認済み作用を区別 |
よくある間違い
よくある質問
event.origin確認だけで十分ですか?
いいえ。ウィンドウ、構造、状態も確認します。要求の権限はサーバーで確認します。
公式参照文献
参照文献はメソッドを裏付けるものです。 チェックは状況に合わせて調整してください。 これらは認証ではありません。 元の参照文献のタイトルやソース文書は別の言語で書かれている場合があります。
参照資料の確認日 .






