禁止 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
属性。将来,这可能可用于对此类文档应用限制。
然而,与此同时,您可能需要通过沙盒域提供此内容,或者重新考虑您的设计。
我有一个看起来像这样的框架:<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
属性。将来,这可能可用于对此类文档应用限制。
然而,与此同时,您可能需要通过沙盒域提供此内容,或者重新考虑您的设计。