我最近读了一篇关于嵌入式内容安全策略(CSP)的W3C工作草案。
该文档定义了一种机制,通过这种机制,网页可以嵌入嵌套的浏览上下文当且仅当它同意对自己强制执行一组特定的限制。来源:内容安全策略:嵌入式执行
除非我完全理解错了,否则这个嵌入CSP不会完全破坏CSP的基本原理吗?
在可以注入HTML (使用iframe)或JS (XSS)的情况下,您可以设置这样的"Embedded“属性?从原始HTTP响应覆盖CSP?这似乎是不可取的。
发布于 2017-06-22 14:18:33
假设我用大量的JS构建我的网站supersite.com,所以我希望它能够运行脚本,但我也想添加一些添加,但我不希望它是动态的,因此不执行script。
问题是,通常情况下,我的添加提供程序确实包括脚本。为了避免这种情况,我明确地告诉他我不需要脚本,然后设置以下iframe:
<iframe src="http://addprovider.com/?site=mywebsite" csp="script-src 'none'"></iframe>
在将GET请求发送给addprovider.com时,将设置以下标头:
Embedding-CSP: script-src 'none'
从这里开始,addprovider.com知道如果它将script放入,supersite.com将拒绝执行脚本,从而决定将一些花哨的图像放在一起。在发回答案时,addprovider.com通过设置以下标题显示它接受给定的策略:
Content-Security-Policy: script-src 'none'
如果addprovider.com试图欺骗并发回它的答案是csp遵从,但没有,supersite.com的响应将被阻塞。如果addprovider不返回csp或返回不匹配或强制执行给定csp的csp,则响应也将被阻塞。
这有什么用?这是自动取款机的两种选择:
CSP上设置一个supersite.com,其中包含标题或元标记:<meta http-equiv="Content-Security-Policy" content="script-src 'self'">。但是,这个CSP不适用于嵌入式addprovider.com!sandbox属性。但是,这太宽泛了。您只能阻止所有的script或无。在处理CSP时,不能指定不同的位置https://security.stackexchange.com/questions/162531
复制相似问题