2016-04-06 3 views
1

window.postMessageとiframeに関して多くのコンテンツが見つかりましたが、ドメイン間のiframe通信は日付がついたようです。2016年以降の最新のブラウザにwindow.postMessage APIを使用しない理由はありますか?

最新のブラウザでは、= IE9 ..バニラjsのwindow.postMessageで十分でしょう。 easyXDMなどのようなより大きなパッケージを使用しています。

http://caniuse.com/#search=postMessage

私は何をしないのですか?主にセキュリティ上の問題

答えて

0

その:(たとえば含め、http://evil.example.com

任意のウィンドウが他のウィンドウにメッセージを送ることができ、あなたは、未知の送信者が悪質なメッセージを送信しないという保証はありません。しかし、身元を確認しても、受信したメッセージの構文を常に検証する必要があります。そうしないと、信頼できるメッセージのみを送信することを信頼したサイトのセキュリティホールが、サイト内のクロスサイトスクリプティングホールを開く可能性があります。

あなたがのpostMessageを使用して送信する場合次に、あなたが悪意のあるサイトによって傍受されているデータに自分自身を開く:悪質なサイトは、あなたの知識がなくても、ウィンドウの位置を変更するため、それができ

postMessageを使用して送信されたデータをインターセプトできます。

はさらに、転送パラメータは、オプションながら、すべてのブラウザ間で標準ではありません。

otherWindow.postMessage(message, targetOrigin, [transfer]); 

Link to MDN docs

+2

あなたが適切にAPIを使用しない場合に発生する指摘セキュリティ問題 - 失敗または無視して送信者を検証するか、インスタンスのターゲットを指定しない。正しく使用されている場合は、この記事で説明したように安全です。 –

+0

100%一致 - キーワード 'if' – JordanHendrix

関連する問題