如何找到内容安全政策违规报告的来源?
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 错误