请多多包涵,我只有一些Web开发经验。在window.postmessage()文档中显示了语法,用于侦听侦听页面上的postmessage()引起的事件。出于安全原因明确声明,当触发事件侦听器时,应检查event.origin以确保其来自预期的主机。通常以以下方式完成:
if ( event.origin == somehostname.com) {}
让我感到困惑的是,为什么恶意用户不能只使用断点暂停代码并修改某些hostname.com值。同样的事情也可能适用于postmessage()本身以及目标原点参数的调用。当有人可以在字符串值发生之前就对其进行编辑时,这如何提供“安全性”?
您的理论恶意用户已经完全可以访问两个网站的客户端。他们不需要postMessage
访问它们中的任何一个的数据。
Same Origin Policy旨在阻止恶意网站使用浏览器用户的凭据(被欺骗访问恶意网站)来访问其他网站的数据。
postMessage
可以限制允许哪些来源读取其发送的消息,因此,如果网站使用它来发送包含机密信息的消息,则可以将发布的消息标记为some-trusted-website.com,这将阻止恶意网站阅读邮件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句