如何防止跨域iframe window.top访问?

时间:2018-07-06 19:21:33

标签: javascript iframe cross-domain electron

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

我认为我应该能够放松iframe上的某些安全性。也许在父级上有一些CSP?我看到一些类似NodeWebkit的框架具有自定义的v8处理的html属性,以在尝试访问window.top或window.parent时强制iframe返回自己的窗口,但是我觉得必须要替换掉wondow.top.close < / p>

  • iframe已在Web视图中,不能使用嵌套的Web视图
  • iframe内容是另一个域
  • 无法将iframe沙盒化,因为客户端代码运行Flash插件
  • 有问题的应用是Electron 1.3.0

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

1 个答案:

答案 0 :(得分:1)

查看是否做以下工作:

1)将内容加载到您要操纵的Web视图中。

2)使用webcontents.executejavascript运行您需要阻止访问顶部的javascript