window.postMessage()如何“安全”?

用户名

请多多包涵,我只有一些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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

节点模块库中 Window.postMessage 的安全风险

您如何跨域使用window.postMessage?

如何使用window.postmessage与父窗口进行通信

如何限制由`window.postMessage()`事件调用的函数

如何使用window.postMessage来动态嵌入iframe?

window.postMessage VS window.chrome.webview.postMessage

Angular 2 window.postmessage

离子打字稿中的window.postMessage

postMessage目标原点-window.parent.origin与“ *”

window.postMessage与Ajax的优缺点

setTimeout(0)vs window.postMessage vs MessagePort.postMessage

TypeError:IOS上带有window.postMessage的参数不足

从web_accessible_resource到内容脚本的window.postMessage

哪些浏览器现在支持window.postMessage调用?

为什么JavaScript“ window.postMessage”创建重复的消息?

是否可以在Chrome扩展程序中使用window.postMessage()?

iframe 安全 postmessage high jacking

我如何避开window.opener跨域安全性

如何从远程线程销毁Window?

如何测试X Window Manager

React Window如何传递组件?

如何“取消” window.scroll()

如何覆盖window.open?

如何使用window.caches从window对象保存页面?

JavaScript / jQuery语法如何工作:(function(window,undefined){})(window)?

如何从window2调用window1中的函数

未捕获的SyntaxError:无法在“ Window”上执行“ postMessage”:在对“ postMessage”的调用中无效的目标源“ my_page”

如何从postMessage()访问数据?

在页面和内容脚本之间发送消息的window.postMessage替代方法是什么?