Content Security Policy拦截script-src-elem已列示主机是什么原因?
该请求被判定违反CSP规则的常见原因如下:
- 最核心的高频原因是
https://www.google.com/jsapi会自动触发服务端重定向到对应区域的谷歌国别域名,比如中国大陆地区通常会跳转至https://www.google.com.hk/jsapi,其他地区也会跳转至对应国家/地区的本地化域名,这些重定向后的域名并未加入script-src-elem允许列表,而CSP会校验资源最终落地地址的合法性,因此触发违规。 - 存在多份CSP策略叠加生效:除了当前配置的响应头CSP外,若页面内还通过
<meta>标签定义了其他CSP规则,或者页面嵌套在父级iframe中继承了父页面的更严格CSP规则,只要有任意一份策略未放行对应域名,就会触发拦截。 - 浏览器缓存了旧版CSP策略:如果之前上线过未将
https://www.google.com加入script-src-elem的旧版本配置,浏览器可能会缓存旧策略,可通过清除浏览器缓存、使用无痕模式测试验证该问题。 - 报告与实际生效策略不匹配:你提供的违规报告中
disposition字段值为report,说明该报告来自仅上报不拦截的Content-Security-Policy-Report-Only头,若你实际遇到了资源被拦截的情况,需要检查是否同时配置了强制生效的Content-Security-Policy头,确认该头的script-src-elem规则是否遗漏了对应域名。
内容的提问来源于stack exchange,提问作者pat
相关产品推荐
相关产品推荐

