CSP的script-scr规则已添加unsafe-eval仍提示不存在该配置怎么解决
CSP unsafe-eval 配置不生效排查方案
- 优先检查指令拼写:注意正确的CSP脚本指令为
script-src,你提到的script-scr属于拼写错误,拼写错误的指令会被浏览器直接忽略,导致对应配置不生效 - 排查多CSP策略冲突:如果页面同时存在响应头返回的CSP、meta标签嵌入的CSP多份配置,浏览器会执行所有配置的交集,只要任意一份配置未添加
unsafe-eval,规则就不会生效 - 检查指令优先级:如果
script-src中同时配置了nonce-*、strict-dynamic这类高优先级规则,部分浏览器会自动忽略unsafe-eval配置,可尝试将unsafe-eval放在nonce-*/strict-dynamic之前声明 - 确认生效模式:如果当前配置的是
Content-Security-Policy-Report-Only(仅报告模式),配置只会触发日志上报不会实际生效拦截规则,需要修改对应Content-Security-Policy正式响应头 - 排除缓存干扰:旧的CSP策略可能被浏览器缓存,可使用隐私模式访问,或者强制刷新页面(Windows:Ctrl+Shift+R,Mac:Cmd+Shift+R)验证配置
- meta标签配置校验:如果通过meta标签配置CSP,注意不能在标签内配置
frame-ancestors、sandbox、report-uri这类仅支持响应头的指令,否则会导致整个CSP配置失效
内容的提问来源于stack exchange,提问作者zoty2
相关产品推荐
相关产品推荐

