0

假设我有一个扩展程序,它添加了标题来阻止和报告跨站点脚本。当我尝试拥有两个内容安全策略标头时,其中一个仅作为报告,但两者似乎都不起作用。只有一个或另一个。这是铬的错误吗?规范很清楚,他们不应该互相干扰。CSP块并仅报告标题

我推测​​指令可能存在一个特殊情况,如果我将其分解到它的组成部分,它可能会工作。另一种可能的解决方案可能是切换订单,但在这种情况下,仍然只有一种可行。否则,最糟糕的情况是铬会导致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); 

我试过,没有明显的解决方案搜索代码库铬,我希望这是一件别人以前碰到,可以帮助我。

任何铬开发谁可以回答这个问题?

编辑:我刚刚发现这个https://bugs.chromium.org/p/chromium/issues/detail?id=503730

它说确实有铬同时防止CSP和CSPRO从共同工作中的错误,而且它是固定的。但它仍然不适合我。

+0

在后台控制台没有错误?尝试[日志记录](https://www.chromium.org/for-testers/enable-logging)或chrome://跟踪。另外,也许它只有在使用https报告URL时才有效。 – wOxxOm

+0

问题在于'sandbox'指令。请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=594645 –

回答