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

不安全的JavaScript试图访问Google Chrome中的框架,javascript,security,google-chrome,iframe,Javascript,Security,Google Chrome,Iframe,我们的web应用程序(基于HTML5、SVG和JS)在除Google Chrome之外的所有浏览器中都运行良好 在GoogleChrome中,正常的javascript事件运行良好,但是,附加到iFrame的所有javascript事件都不会执行。我们在控制台中得到错误: Unsafe JavaScript attempt to access frame 目前,应用程序是本地托管的,在内部测试期间出现了这个问题 谷歌搜索这篇文章会带来很多帖子,但都没有提出任何具体的解决方案。有什么建议吗?请确

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

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

Unsafe JavaScript attempt to access frame
目前,应用程序是本地托管的,在内部测试期间出现了这个问题


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

请确保iframe和主页使用相同的协议(即https或http,但不混合),并且位于同一域(即www.example.com,而不是example.com和dev.example.com)。还有一种可能性是,有人试图使用file://协议,这也会导致此消息。

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


您可以在此处找到与本地来源相关的风险的更多信息:

请提供页面的源代码和JavaScript代码。通过这种方式获得有用的答案(和我的不同)会更容易:)感谢Vladislav,使用相同的协议和相同的域。这个文件很有趣。谢谢贾斯汀。我想你们两个(弗拉迪斯拉夫)在这件事上有所发现。我们认为这也与文件位置有关。接受你的答案。这只是谷歌阻止本地网络应用程序并强迫人们使用网络服务器的一种方式,谷歌本可以简单地将文件夹名称视为同一来源,这会让生活变得更轻松。这太荒谬了。此安全“功能”有效地防止了在本地存储的网站中使用任何脚本的可能性。甚至禁止这种行为的命令行参数本身听起来也很可笑(允许从文件访问文件?什么?),这项功能实际上是关于安全性的。如果没有这样的限制,任何不受信任的本地打开的文件(理论上)都可以枚举系统中的所有文件,并访问几乎所有具有最新HTML5功能的文件。有争议的是,对于本地文件来说,单个目录可能是一个更好的来源,但实际上,这可能会使整个下载文件夹为脚本打开。如果您需要更多信息,请完整阅读参考文章。