HTML5 Iframe:阻止远程请求

时间:2015-08-09 11:11:47

标签: javascript html5 iframe sandbox

我正在使用srcdoc属性将HTML内容加载到iframe中。 iframe是一个没有权限的沙盒iframe,因此iframe中的所有Javascript都被阻止。但是,仍会在iframe内触发远程请求(例如CSS,图像等)。

有没有办法告诉iframe只加载我在srcdoc属性中提供的内容而不再发出任何其他请求?

提前致谢

1 个答案:

答案 0 :(得分:5)

基础知识

大概不是因为沙盒化iframe意味着避免在主文档和iframe文档之间共享敏感数据或限制潜在的破坏性行为。

iframe在功能上仍然是一个浏览器窗口,并且会像这样,加载在其中声明的所有外部资源,唯一的区别是它显示在另一个文档而不是另一个窗口中。

如果srcdoc内的代码调用了远程资源,那么浏览器正在通过加载它们来完全按照您的要求进行操作。

如果您不想加载这些资源,则必须使用srcdoc代码对其进行编辑。

实际上,一种可能的解决方案

话虽如此,可能存在使用Content Security Policy标记在iframe文档中使用meta来阻止资源加载的方法:

<meta http-equiv="Content-Security-Policy" content="default-src 'none';">

<meta http-equiv="X-Content-Security-Policy" content="default-src 'none';">

我在 Firefox 39.0.3 下尝试了这个,但它没有用,可能是因为以下原因:

Bug 663570 - Implement Content Security Policy via tag

无论如何,有关更多信息,请参阅: