我的框架看起来像这样:<iframe srcdoc="*insert HTML here*"></iframe>
。
框架中可能包含一些javascript,这没关系。
如何阻止该帧的内容连接到网络?
这包括: - Javascript的HTTP请求和WebSocket连接等 - CSS中引用的远程资源 - HTML代码中的外部文件
是否有某种沙盒规则可以禁用远程连接,还是我必须正则表达所有这些?如果是这样,在应用正则表达式时我应该注意什么?
答案 0 :(得分:1)
目前还没有可靠的方法来实现这一目标。
sandbox
属性无法应用您尝试在此处应用的限制类型。 Content-Security-Policy可以(有一些困难),但目前无法将此类策略可靠地应用于<iframe>
属性设置的srcdoc
,因为没有模拟此类文档的HTTP标头的方法。实际上,将srcdoc
的iframe简单地视为嵌入它的页面的一部分,并从该页面继承任何Content-Security-Policy!
W3C草案规范“Content Security Policy: Embedded Enforcement”提出了csp
属性。将来,这可能可用于对此类文档应用限制。
但与此同时,您可能需要通过沙盒域提供此内容,或重新考虑您的设计。