我定义了以下内容安全策略:
X-Content-Security-Policy-Report-Only: default-src 'self'; report-uri /foo
如果我将其更改为X-Content-Security-Policy
,则会强制执行该策略并发送报告。但是,当我将其设置为Report-Only
时,控制台中不会显示任何策略警告,也不会发送任何报告。
我知道他们不支持unsafe-inline
和unsafe-eval
的错误,而是您必须使用options inline-script eval-script
,但我不在此页面上使用。
我不知道这是否与它有很大关系,但标题是以X-Content-Security-Policy-Report-Only
发送的,但Firebug会将其转换为x-content-security-policy-report-only
- 只需更改大小写。
此外,在提供X-Content-Security-Policy
和X-Content-Security-Policy-Report-Only
时,如下所示:
X-Content-Security-Policy: default-src 'self'; options inline-script; report-uri /csp-report.php
x-content-security-policy-report-only: default-src 'self'; report-uri /csp-report.php
控制台有一个WARN级别消息:
仅报告CSP政策将被忽略,因为还有其他政策 仅适用于非报告的CSP政策。
所以它看到了标题,而不是处理它并报告但强制执行另一个,它完全放弃了它?
答案 0 :(得分:0)
Uggh - 之前我看过错误报告,但没有仔细阅读,认为这是unsafe-inline
或unsafe-eval
问题。 https://bugzilla.mozilla.org/show_bug.cgi?id=687086实际上专门讨论了内联脚本没有触发策略,因为允许脚本运行。使用违反策略的其他内容(例如从其他地方加载脚本)进行测试,生成并发送报告。