javascript - 如何限制沙盒 iframe 可以连接的域?

标签 javascript iframe xmlhttprequest sandbox

我正在创建类似应用程序生态系统的东西,其中每个应用程序都在沙盒 iframe 中运行并处理敏感数据。我想允许脚本,但我不希望 iframe 与任何第三方服务器通信,否则可能会泄漏此数据。

有没有办法像使用 Chrome 扩展程序一样强制执行白名单?我是否以错误的方式处理这个问题?

最佳答案

您需要限制所有事物可以连接的域,而不仅仅是 XHR(img 标签也可能泄漏数据)。现代浏览器提供了一项名为 Content Security Policy 的功能来执行此操作。 .

特别是,要将域列入白名单,您将需要返回如下所示的 header :

Content-Security-Policy: default-src 'self' safedomain.com securedomain.com

与任何与安全相关的内容一样,请确保您仔细阅读了该主题并了解您正在处理的内容的含义。从 Stack Overflow 答案中复制粘贴代码是不够的。

另请记住,某些较旧的浏览器不支持此功能,并且不会默默地强制执行它,因此您可能希望检测到这一点并防止这些浏览器暴露敏感数据。

关于javascript - 如何限制沙盒 iframe 可以连接的域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35279566/

相关文章:

javascript - jQuery ajax 无法检索 json

javascript - 制作所见即所得的文本编辑器

javascript - 解析 XMLHttpRequest() 结果(使用 XPath)

javascript - 访问通过 xhr 请求获取的 HTML 源中所有脚本标签中的变量

javascript - 从服务器下载流式视频

javascript - lastChild 的 getBoundingClientRect().x

JavaScript 函数返回值未定义

javascript - 如何让 angularJS 动态内容显示在 iframe 中?

javascript - 如何强制 Enter 键在 iframe 编辑器中进行换行

javascript - 是否可以在没有 flash 的情况下在 IE 中使用 ajax 上传进度条?