我发现有关window.postMessage和iframe,跨域iframe通信的很多内容似乎都过时了。
对于> = IE9 ..的现代浏览器,似乎香草js window.postMessage就足够了。与使用更大的软件包(如easyXDM或其他)相对。
http://caniuse.com/#search=postMessage
我想念什么?
主要是安全问题:
任何窗口(包括例如http://evil.example.com)都可以将消息发送到任何其他窗口,并且您不能保证未知发件人不会发送恶意消息。但是,在验证了身份之后,您仍然应该始终验证接收到的消息的语法。否则,您信任的仅发送受信任邮件的站点中的安全漏洞可能会在您的站点中打开跨站点脚本漏洞。
接下来,如果您使用postMessage发送邮件,那么您就可以打开被恶意站点拦截的数据:
恶意站点可以在您不知情的情况下更改窗口的位置,因此它可以拦截使用postMessage发送的数据。
此外,transfer参数虽然是可选的,但并不是所有浏览器的标准配置:
otherWindow.postMessage(message, targetOrigin, [transfer]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句