首页 > 解决方案 > 您如何找到导致 CSP 错误的脚本?

问题描述

谷歌开始突然抛出这条消息:

"Content Security Policy of your site blocks the use of 'eval' in JavaScript"

我没有配置策略,所以为了测试,我尝试将我的 CSP 设置为(在 HTML 和 web.config 中):

<add name="Content-Security-Policy" value="default-src *; style-src 'self' 'unsafe-inline'; 
    script-src 'self' 'unsafe-inline' 'unsafe-eval' https://js.squareup.com/; report-uri /csp_report_parser;" />

我在报告中一无所获,谷歌也不会告诉我来源:

csp 错误

如何找到违规代码?

谢谢!

标签: htmlasp.net-mvcsecuritycontent-security-policy

解决方案


  1. 将“report-sample”标记添加到 script-src 指令。它应该发送导致违规的代码示例 - 40 个字符,还将发送行号(我可以看到您确实使用违规报告功能)。

  2. 在浏览器控制台中,您可以看到发生违规的函数名称(绿色箭头)和行号(下方打印屏幕上的蓝色箭头)。report-sample红色下划线 的结果:打印屏幕

  3. 您可以通过 javascript 捕获SecurityPolicyViolation 事件- 违规报告中发送的所有内容都是可访问的,包括行/列号。

谷歌开始突然抛出这条消息:

它不可能是出乎意料的。可能是软件升级后激活了默认的 CSP 规则,或者您触摸了设置。

无论如何,您script-src 'self' 'unsafe-inline' 'unsafe-eval'的 CSP 允许 eval 表达式,因此您在某个地方发布了另一个 CSP。


推荐阅读