不安全的 JavaScript 尝试访问 Google Chrome 中的框架

IT技术 javascript security google-chrome iframe
2021-02-03 03:33:46

我们的 Web 应用程序(基于 HTML5、SVG 和 JS)在除 Google Chrome 之外的所有浏览器中都运行良好。

在谷歌浏览器中,正常的 javascript 事件运行良好,但是,附加到 iFrame 的所有 javascript 事件都不会执行。我们在控制台中得到错误:

Unsafe JavaScript attempt to access frame

目前,该应用程序是本地托管的,并且在内部测试期间出现了这个问题。

谷歌搜索这会带来很多帖子,但没有人提出任何具体的解决方案。有什么建议?

2个回答

作为一项额外的安全措施,Chrome 将每个“文件”路径视为自己的来源,而不是将整个“文件”方案视为单一来源(其他浏览器就是这样做的)。此行为仅适用于“文件”网址,您可以通过在启动时传递--allow-file-access-from-files开关来强制 Chrome 恢复到单个本地来源(与其他浏览器一样)

您可以在此处找到有关与本地来源相关的风险的更多信息:http : //blog.chromium.org/2008/12/security-in-depth-local-web-pages.html

这只是谷歌阻止本地网络应用程序并强迫人们使用网络服务器的方式,谷歌可以简单地将文件夹名称视为同源,这将使生活更轻松。
2021-03-21 03:33:46
这是荒唐的。此安全“功能”有效地防止了在本地存储的网站中编写任何脚本的任何可能性甚至抑制这种行为的命令行参数本身听起来也很荒谬(允许从文件访问文件?什么?)
2021-04-03 03:33:46
谢谢贾斯汀。我认为你们(弗拉迪斯拉夫)都在这里有所作为。我们认为它也与文件位置有关。采纳你的回答。
2021-04-13 03:33:46
此功能实际上是关于安全性的。如果没有这样的限制,任何不受信任的本地打开文件(理论上)都可以枚举系统中的所有文件并访问几乎所有具有最新 HTML5 功能的文件。有争议的是,单个目录是本地文件的更好来源,但这可能会使整个下载文件夹在实践中为脚本打开。如果您需要更多信息,请完整阅读参考文章。
2021-04-14 03:33:46

请确保 iframe 和主页都使用相同的协议(即都使用 https 或同时使用 http,但不能混合使用)并且在同一个域中(即同时使用 www.example.com 而不是 example.com 和 dev.example .com)。还有可能是某些东西试图使用 file:// 协议,这也会导致此消息。

感谢 Vladislav,也使用相同的协议和相同的域。那个 file:// 是有趣的一点。
2021-04-08 03:33:46