关于html5 postMessage安全问题的疑问?
PHP中文网
PHP中文网 2017-04-17 11:44:49
0
2
744

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

对于第二个参数,mdn的解释是:

Specifies what the origin of otherWindow must be for the event to be
dispatched, either as the literal string "*" (indicating no
preference) or as a URI. If at the time the event is scheduled to be
dispatched the scheme, hostname, or port of otherWindow's document
does not match that provided in targetOrigin, the event will not be
dispatched; only if all three match will the event be dispatched.

我自己也测试了一下。大概就是说这个参数指定 目标窗口的源(scheme+host+port),如果目标窗口的源不符合要求,就不会被派发message事件。

我不明白做这件事有什么意义?otherwindow.postMessage不是已经指定了目标窗口吗,难道它的src有可能改变?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
黄舟

任何窗口的 url 都是可以改变的,那么不指定这个参数是有安全问题的。

いいねを押す +0
大家讲道理

postMessage是可以跨窗口的,不一定是父窗口和iframe之间通信啊。
所以,很可能另一个窗口已经跳到了另一个uri……,而otherWindow还是指向那个窗口

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート