禁止 IFrame 中的网络连接

Disallow Network Connections in IFrame

我有一个看起来像这样的框架:<iframe srcdoc="*insert HTML here*"></iframe>

框架中可能有一些 javascript,没关系。

如何阻止该框架的内容连接到网络?

这包括: - Javascript 的 HTTP 请求和 WebSocket 连接等 - CSS 中引用的远程资源 - HTML代码中的外部文件

是否有某种沙盒规则可以禁用远程连接,或者我是否必须对所有这些进行正则表达式处理?如果是这样,在应用正则表达式时应该注意什么?

目前没有可靠的方法来完成这个。

sandbox 属性无法应用您在此处尝试应用的限制类型。 Content-Security-Policy 可以(有一些困难),但是目前没有办法可靠地将这样的策略应用于 <iframe> 其内容由 srcdoc 属性设置,因为没有为此类文档模拟 HTTP headers 的方法。事实上,带有 srcdoc 的 iframe 被简单地视为嵌入它的页面的一部分,并从该页面继承任何 Content-Security-Policy!

W3C 规范草案“Content Security Policy: Embedded Enforcement”提出了一个 csp 属性。将来,这可能可用于对此类文档应用限制。

然而,与此同时,您可能需要通过沙盒域提供此内容,或者重新考虑您的设计。