1

我定义了以下内容安全策略:

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-PolicyX-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 策略。

所以它看到了标题,而不是处理它和报告,而是强制执行另一个,它完全放弃了它?

4

1 回答 1

0

Uggh - 我以前看过错误报告,但没有仔细阅读并认为是unsafe-inlineorunsafe-eval问题。https://bugzilla.mozilla.org/show_bug.cgi?id=687086实际上专门讨论了内联脚本不会触发策略,因为允许脚本运行。对违反政策的其他事物进行测试(例如从其他地方加载脚本),生成并发送报告。

于 2013-05-09T12:29:40.957 回答