带有“允许同源”标志错误的 iframe 沙盒

Posted

技术标签:

【中文标题】带有“允许同源”标志错误的 iframe 沙盒【英文标题】:Iframe sandboxing with 'allow-same-origin' flag error 【发布时间】:2015-07-22 21:09:00 【问题描述】:

有人可以向我提供有关此错误的更多信息以及“允许同源”标志的工作原理吗?我在 Chrome for iframe Sandboxing 中收到以下错误:

未捕获的安全错误:无法从“htmlIFrameElement”读取“contentDocument”属性:沙盒访问冲突:阻止“http://192.168.0.169”处的框架访问“http://192.168.0.169”处的框架。被访问的框架是沙盒的,缺少“allow-same-origin”标志。

我有点困惑,为什么当来自 192.168.0.169 的帧从同一 IP 地址访问另一个帧时,我需要“允许同源”标志。 非常感谢。

【问题讨论】:

在 chrome 上,尝试设置标志 --disable-web-security @Rakesh_Kumar 我会试试的。但请注意,我正在开发一个 Web 应用程序。我不能要求最终用户在他们的浏览器上禁用这个标志。你能解释一下这个错误的原因吗? 【参考方案1】:

你的 iframe 中可能有一个沙盒属性:

沙盒属性为 iframe 中的内容启用了一组额外的限制,它是启用权限的白名单,

因此您可以删除该属性,或对其进行编辑以适应您需要的权限。

可在此处找到可选权限:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

这里还有更多信息:http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

【讨论】:

我浏览了这些文章,并根据我引用的“html5rocks”文章:“allow-same-origin 是必要的,否则 twitter.com 的 cookie 将无法访问,用户无法访问登录以发布表格”。所以基本上这个标志在使用沙盒时是必须的? 除非你只想显示 html&css,不涉及 JS 或 cookie 需要提一下,默认的限制已经足够好,也足够安全了,大部分情况下不需要使用sandbox属性 这个答案对你有帮助吗?

以上是关于带有“允许同源”标志错误的 iframe 沙盒的主要内容,如果未能解决你的问题,请参考以下文章

如何突破沙盒 iFrame?

带有“#”的 Clang 诊断标志会导致构建错误

带有 --dev 标志的纱线错误“没有这样的选项”

带有 -mavx 标志的链接器错误 GCC7

带有不安全构建标志的 Swift 包依赖项:目标完整性错误

带有 DEBUG_PROCESS 标志的 CreateProcess 在某些可执行文件上导致错误 50