report-uri 缺少内容安全策略违规详细信息
Content Security Policy violation details missing on report-uri
Chrome 正在向 report-uri
报告违反内容安全政策的情况,但未报告任何违规细节。它报告 {}
而不是提供有关违反政策的详细信息。所有其他浏览器似乎都能很好地报告违规细节。下面提供了我的政策。
我试过了...
- 将完整的绝对路径放在
report-uri
指令中。
- 使策略退出
Report-Only
模式
- 使政策更加简单,例如
default-src 'none' ; report-uri /api/csp-report;
- 关闭我所有的扩展程序(虽然我在生产网站上看到这个来自 win 和 osx 访问者 chrome)
- 在 Canary 中测试
- "Reported an issue" in chrome(我猜它还没有被分类)
我还没有找到答案的问题
- 这在 Chrome 中实现了吗?
- 实现是否与规范不同?
政策(通过 HTTP Header 提供)
Content-Security-Policy-Report-Only: default-src 'none' ; script-src
'self' 'unsafe-eval' https://www.google-analytics.com; style-src
'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self'
https://www.google-analytics.com ; font-src 'self'
https://fonts.gstatic.com; connect-src 'self'
https://api.servicesite.com; frame-src 'none' ; child-src 'none' ;
frame-ancestors 'none' ; form-action 'self' ;
upgrade-insecure-requests; block-all-mixed-content; reflected-xss
block; base-uri https://*.mysite.com; referrer
origin-when-cross-origin; report-uri /api/csp-report;
更新... 2016 年 3 月 16 日
- Chrome 正在发送报告。我在网络选项卡中看到请求 body。还将其记录在中间 nginx 代理中。
这让我认为这是我的接收代码中的一个解析问题(node,express using body-parser)。但是,对于为什么这只会发生在 Chrome CSP 报告中,仍然感到困惑。所有其他浏览器的报告都正常通过。
- Chrome 根据 CSP 规范级别 2 (https://www.w3.org/TR/CSP/#violation-reports)
正确发送 CSP 报告 "with a Content-Type header field of application/csp-report"
- 其他浏览器仍在发送
application/json
CSP 规范级别 1 中所述
- 我正在接受 nodejs + expressjs + body-parser 的报告。默认情况下,正文解析器仅解析具有
content-type: application/json
的请求,必须包含 application/csp-report
作为要解析的有效内容类型。
改变了这个...
app.use(bodyParser.json());
为此...
app.use(bodyParser.json({type: ['application/json', 'application/csp-report']}));
Chrome 正在向 report-uri
报告违反内容安全政策的情况,但未报告任何违规细节。它报告 {}
而不是提供有关违反政策的详细信息。所有其他浏览器似乎都能很好地报告违规细节。下面提供了我的政策。
我试过了...
- 将完整的绝对路径放在
report-uri
指令中。 - 使策略退出
Report-Only
模式 - 使政策更加简单,例如
default-src 'none' ; report-uri /api/csp-report;
- 关闭我所有的扩展程序(虽然我在生产网站上看到这个来自 win 和 osx 访问者 chrome)
- 在 Canary 中测试
- "Reported an issue" in chrome(我猜它还没有被分类)
我还没有找到答案的问题
- 这在 Chrome 中实现了吗?
- 实现是否与规范不同?
政策(通过 HTTP Header 提供)
Content-Security-Policy-Report-Only: default-src 'none' ; script-src 'self' 'unsafe-eval' https://www.google-analytics.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' https://www.google-analytics.com ; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.servicesite.com; frame-src 'none' ; child-src 'none' ; frame-ancestors 'none' ; form-action 'self' ; upgrade-insecure-requests; block-all-mixed-content; reflected-xss block; base-uri https://*.mysite.com; referrer origin-when-cross-origin; report-uri /api/csp-report;
更新... 2016 年 3 月 16 日
- Chrome 正在发送报告。我在网络选项卡中看到请求 body。还将其记录在中间 nginx 代理中。
这让我认为这是我的接收代码中的一个解析问题(node,express using body-parser)。但是,对于为什么这只会发生在 Chrome CSP 报告中,仍然感到困惑。所有其他浏览器的报告都正常通过。
- Chrome 根据 CSP 规范级别 2 (https://www.w3.org/TR/CSP/#violation-reports) 正确发送 CSP 报告 "with a Content-Type header field of application/csp-report"
- 其他浏览器仍在发送
application/json
CSP 规范级别 1 中所述
- 我正在接受 nodejs + expressjs + body-parser 的报告。默认情况下,正文解析器仅解析具有
content-type: application/json
的请求,必须包含application/csp-report
作为要解析的有效内容类型。
改变了这个...
app.use(bodyParser.json());
为此...
app.use(bodyParser.json({type: ['application/json', 'application/csp-report']}));