使用Ember/JavaScript的动态内容安全策略
问题描述:
我们有一个基于Ember的站点,它分为两个概念部分,它们需要各自的内容安全策略。目前在index.html
上应用了单个CSP。使用Ember/JavaScript的动态内容安全策略
是否有可能在页面加载后,API /服务器响应中发送的Content-Security-Policy
标题被浏览器所尊重?我试图在API响应中发送这个头文件,但似乎并没有被Chrome所尊敬。
答
这不应该是可能的,因为CSP规格(等级2,2016年12月15日):
3.5。政策适用性
本节不是规范性的。
策略与受保护的资源相关联,并为该资源执行或监视。如果资源没有创建新的执行上下文(例如,将脚本,图像或样式表包含到文档中),则随该资源一起交付的任何策略都将被丢弃而不会生效。其执行受制于包含上下文的政策或政策。
源:如HTML元素meta提供https://www.w3.org/TR/CSP2/#which-policy-applies
更改CSP也应该是不可能的:
3.3。 HTML元素meta
[...]
注:修改的元素已经被解析后meta元素的内容属性将被忽略。
+0
好吧,这是吹。谢谢。 – nullPainter
这是不可能送*页面加载后的任何*头,对不对?这不是HTTP工作的方式......标题需要在响应主体之前发送。您是否尝试过使用“元素来交付策略? – sideshowbarker
我们可以在页面加载后发送来自API请求的响应头。这些响应头文件可以包含影响状态的cookie - 因此,它不是完全不合理的(只有大部分是不合理的)才能想象CSP可以类似地工作。元方法可能运作良好,谢谢。 – nullPainter