如何找到内容安全政策违规报告的来源?

Posted

技术标签:

【中文标题】如何找到内容安全政策违规报告的来源?【英文标题】:How can I find the source of a Content Security Policy violation report? 【发布时间】:2021-09-19 07:36:28 【问题描述】:

当我访问我的网页时,我在浏览器中收到内容安全政策违规报告:

[仅报告] 拒绝加载图像 '' 因为它违反 以下内容安全策略指令:“img-src 'self' ”。

当我调查 HTTP 响应标头时,Content-Security-Policy-Report-Only 标头或 Content-Security-Policy 标头似乎都不是由源服务器设置的。

如何找到此违规报告的来源?考虑到似乎没有设置相关标头,我不确定为什么会生成它。

【问题讨论】:

【参考方案1】:

有两种可能:

1.您在页面中嵌入了第三方 iframe。您观察到的违规行为属于该 iframe,它发布了自己的 CSP 标头。由于浏览器只有一个用于主页面和所有 iframe 的控制台,因此您也可以看到第三方 iframe 错误。 尝试使用其他浏览器,其中一些可能更冗长并显示被阻止的 URI。无论如何,您与第三方 CSP 无关。

2. 如果您访问不存在的网页,服务器的中间件可以为具有 4xx/5xx 状态码的页面发布默认 CSP。概率很低,因为Report-Only 模式在这种情况下不使用。

不能在 HTTP 标头中而是在元标记中发布 Content-Security-Policy-Report-Only,因为元标记不支持 Report-Only 模式。因此我赌选择 1

【讨论】:

感谢您的想法@granty。第三方 CSP 最有可能是 2

以上是关于如何找到内容安全政策违规报告的来源?的主要内容,如果未能解决你的问题,请参考以下文章

内容安全政策:Chrome 记录图像资源的 connect-src 错误

Google analytics.js 和内容安全政策

开启CSP网页安全政策防止XSS攻击

做好内容安全检测,和风险说「再见」(下)!

新版网络安全等级保护测评报告模板包含哪些内容?哪里可以找到?

新版网络安全等级保护测评报告模板包含哪些内容?哪里可以找到?