禁止IFrame中的网络连接

时间:2017-04-28 19:26:35

标签: javascript html css iframe sandbox

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

框架中可能包含一些javascript,这没关系。

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

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

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

1 个答案:

答案 0 :(得分:1)

目前还没有可靠的方法来实现这一目标。

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

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

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