首页 > 解决方案 > 如何防止跨域 iframe window.top 访问?

问题描述

摘要:我正在开发一个电子应用程序,我们将客户端 Web 应用程序加载到 iframe 中,并且该 iframe 中的代码有一次调用 window.top.close() 导致 ui 变得无响应。客户端此时无法修复此功能,因此我们需要自己处理。如果有的话,有哪些选项可以解决这个问题?

我在想我应该能够放松 iframe 上的一些安全性。也许在父母身上有一些 CSP?我看到一些像 NodeWebkit 这样的框架有自定义 v8 处理的 html 属性来强制 iframe 在尝试访问 window.top 或 window.parent 时返回自己的窗口,但我觉得必须离开才能替换 wondow.top.close

我尝试过的:替换window.top.close:如果我从同一个域加载内容但不适用于客户端跨域代码,则从父窗口上下文替换iframe.contentwindow.top.close 有效。我没有收到任何错误,用户界面只是锁定了

标签: javascriptiframecross-domainelectron

解决方案


看看是否执行以下工作:

1) 将内容加载到您尝试操作的 web 视图中。

2) 使用webcontents.executejavascript运行你需要的 javascript 来阻止访问 top


推荐阅读