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

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 都是可以改變的,那麼不指定這個參數是有安全性問題的。

大家讲道理

postMessage是可以跨視窗的,不一定是父視窗和iframe之間通訊啊。
所以,很可能另一個視窗已經跳到了另一個uri…,而otherWindow還是指向那個視窗

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板