javascript - 如何防止跨域 iframe window.top 访问?
问题描述
摘要:我正在开发一个电子应用程序,我们将客户端 Web 应用程序加载到 iframe 中,并且该 iframe 中的代码有一次调用 window.top.close() 导致 ui 变得无响应。客户端此时无法修复此功能,因此我们需要自己处理。如果有的话,有哪些选项可以解决这个问题?
我在想我应该能够放松 iframe 上的一些安全性。也许在父母身上有一些 CSP?我看到一些像 NodeWebkit 这样的框架有自定义 v8 处理的 html 属性来强制 iframe 在尝试访问 window.top 或 window.parent 时返回自己的窗口,但我觉得必须离开才能替换 wondow.top.close
- iframe 已经在 webview 中,不能使用嵌套的 webview
- iframe 内容是不同的域
- iframe 不能被沙盒化,因为客户端代码运行 Flash 插件
- 有问题的应用程序是 Electron 1.3.0
我尝试过的:替换window.top.close:如果我从同一个域加载内容但不适用于客户端跨域代码,则从父窗口上下文替换iframe.contentwindow.top.close 有效。我没有收到任何错误,用户界面只是锁定了
解决方案
推荐阅读
- flutter - 主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型
- windows - 无法加载流浪机器“mount -t vboxsf -o uid=1000,gid=1000,_netdev vagrant /vagrant”
- php - 如何从 php 中删除 div 类?
- javascript - 如何降低多个 if 语句的复杂性
- form-recognizer - Azure FormRecognizer:如何在 Azure.AI.FormRecognizer.Models 中使用 RecognizedForm.FormType
- wpf - WPF .Net Framwork 应用程序 - 主菜单下拉菜单在鼠标悬停时立即消失
- java - 如何通过 JPA 查询按子类实体值获取父实体?
- python-3.x - 检测 numpy 数组中的“大”变化
- acumatica - 如何捕捉“保存”事件和刷新过滤器表单
- routes - NextJS:没有语言环境名称的 i18n 子路径路由