【发布时间】:2017-07-07 14:44:51
【问题描述】:
假设我有一个 chrome 扩展程序,它正在添加标题以阻止和报告跨站点脚本。当我尝试拥有两个内容安全策略标头时,一个仅报告,两者似乎都不起作用。只有一个或另一个。这是铬中的错误吗?规范很明确,它们不应相互干扰。
我假设sandbox 指令可能有一个特殊情况,如果我将其分解为它的组成部分,它可能会起作用。另一种可能的解决方案可能是切换顺序,但在这种情况下仍然只有一个有效。否则,最坏的情况是 chromium 中存在一个错误,会阻止 Content-Security-Policy-Report-Only 和 Content-Security-Policy 正常运行。
这是我要添加的标题:
var csp1 = {
'name': 'Content-Security-Policy-Report-Only',
'value': "sandbox; report-uri http://localhost/csp"
}
headers.push(csp1);
var csp2 = {
'name': 'Content-Security-Policy',
'value': "default-src 'none'; report-uri http://localhost/csp"
}
headers.push(csp2);
我尝试在没有明显解决方案的情况下搜索 chromium 代码库,我希望这是以前有人遇到过的问题并且可以帮助我。
有没有 chrome 开发者可以回答这个问题?
编辑:我刚刚发现了这个https://bugs.chromium.org/p/chromium/issues/detail?id=503730
它说 Chromium 确实存在阻止 CSP 和 CSPRO 协同工作的错误,并且已修复。然而它仍然对我不起作用。
【问题讨论】:
-
后台控制台没有错误?试试logging 或 chrome://tracing。另外,可能只有在使用 https 报告 URL 时才有效。
-
问题出在
sandbox指令上。见bugs.chromium.org/p/chromium/issues/detail?id=594645
标签: google-chrome google-chrome-extension google-chrome-devtools chromium