コンテンツへスキップ
uencoder

postMessage

postMessageとは、クロスオリジンのウィンドウ間メッセージングAPIである。送信側がターゲットオリジンを指定し、受信側が送信元オリジンを検証することで、オリジンをまたいで安全にメッセージをやり取りする。

目的

信頼できないクロスオリジンのDOMアクセスに代わり、クロスオリジンのiframeやポップアップと安全に通信するためのものである。

メカニズム

sender.postMessage(data, targetOrigin) の targetOrigin は受信側オリジンを制限する。受信側のmessageイベントはoriginとsourceを運ぶため、処理の前に想定どおりのオリジンか検証すべきである。

ユースケース

  • クロスオリジンiframeとの通信
  • ポップアップウィンドウとの連携
  • ドメインをまたぐメッセージング

関連ツール

References