我正在创建类似应用生态系统的东西,其中每个应用都在沙盒iframe中运行并处理敏感数据。我想允许脚本,但我不希望iframe与任何第三方服务器通信,否则它可能会泄漏这些数据。
有没有办法像Chrome扩展程序那样强制执行白名单?我是以错误的方式解决这个问题吗?
答案 0 :(得分:2)
您需要限制所有内容可以连接的域,而不仅仅是XHR(img
标记也可以泄漏数据)。现代浏览器提供了一个名为Content Security Policy的功能。
特别是,对于白名单域,您需要返回如下所示的标题:
Content-Security-Policy: default-src 'self' safedomain.com securedomain.com
与安全相关的任何内容一样,请务必阅读相关主题并了解您正在处理的内容的含义。从Stack Overflow回答中复制粘贴代码是不够的。
另外请记住,某些较旧的浏览器不支持此功能,并且会默默地不强制执行此功能,因此您可能希望检测到此情况并阻止这些浏览器暴露敏感数据。