这怎么不是postMessage安全漏洞?

时间:2014-06-05 20:14:20

标签: javascript cross-domain postmessage

假设我正在使用postMessage()API在不同域上的帧之间进行通信。接收帧中的标准安全检查是验证消息事件的origin属性,如:

if ( messageEvent.origin !== "http://www.mydomain.com" ) {
    console.log( "Message received from unexpected domain!" );
    return;
}

但是如果有人在他们的浏览器中使用调试器/检查器将发送帧的源设置为恶意URL,其中包括Javascript以发送请求敏感数据或执行其他不良操作的消息。然后他们无法在浏览器的检查器中编辑上面的代码并将检查的原因更改为恶意URL?现在,他们在发送帧中发起具有恶意代码的消息事件,并且接收帧愉快地接受恶意消息。 。

为什么这对postMessage来说不是一个巨大的安全漏洞?

1 个答案:

答案 0 :(得分:0)

  

为什么这对postMessage来说不是一个巨大的安全漏洞?

因为安全策略是为了阻止与未知域的通信。当您收到邮件时,您将原始邮件测试为您信任的域 (如果是mydomain.com,则因为您控制)。

如果该受信任的域突然发送恶意邮件,那么您已经搞砸了。按设计。

此外,永远不会信任用户。如果他决定对他所显示的页面做错事(例如使用开发者工具),那就是他自己的错。您只需要确保此类不会影响其他用户

相关问题