0

我的客户端代码正在从另一个窗口(iframe)接收消息——类似这样的东西(我们称之为page1,或https://my.site/page1):

window.addEventListener("message", function(event) {
    if (event.origin !== ALLOWED_ORIGIN) {
        return;
    }
    // Further logic here
});

iframe 应该指向与 同源的另一个 URL page1,例如https://my.site/page2,在某个点,page2客户端 JS 执行:

window.top.postMessage(somePayload);

我的目标是确保无论 iframe 最终指向何处(可能是由于我没有注意到的被利用漏洞),我page1只接受从我的域上的 URL 发送的消息。

我正在考虑使用window.originas ALLOWED_ORIGINon page1。这似乎比必须从某种配置文件中传递我的域本身要容易,我必须为所有不同的开发、测试环境以及最终的产品进行更改。

但是,我找不到其他人使用这种方法的例子,也找不到任何解释为什么它不够好。

event.origin !== window.origin认为不够安全,最重要的是,为什么?

如果这是显而易见的事情,我深表歉意,并感谢您阅读此问题!

4

0 回答 0