未使用Google Tag Manager却出现CSP脚本加载拒绝错误求助
解决CSP阻止Trustarc脚本加载的问题
问题原因
- 你设置的
script-src-elem指令优先级高于script-src,但这个指令里未包含https://consent.trustarc.com,浏览器加载脚本时会优先遵循这个更严格的规则,直接拦截了Trustarc的脚本 - 错误提示里的CSP规则和你meta标签中配置的不一致,说明服务器响应头里也配置了CSP,浏览器会将响应头CSP与meta标签CSP合并,取两者最严格的交集规则,导致
https://consent.trustarc.com未被纳入允许列表
修复方法
- 更新meta标签的
script-src-elem指令,将Trustarc的域名添加进去:
<meta http-equiv="Content-Security-Policy" content= "default-src *; style-src 'self' 'unsafe-inline' ; script-src 'self' 'unsafe-inline' https://consent.trustarc.com ; script-src-elem 'self' 'unsafe-inline' https://consent.trustarc.com ">
- 检查服务器端的CSP配置(比如Nginx/Apache的响应头设置、平台安全面板等),将
https://consent.trustarc.com添加到script-src指令中,避免与meta标签的规则冲突
简化方案
如果不需要单独控制脚本元素的加载规则,直接删除script-src-elem指令即可,浏览器会自动沿用script-src的规则:
<meta http-equiv="Content-Security-Policy" content= "default-src *; style-src 'self' 'unsafe-inline' ; script-src 'self' 'unsafe-inline' https://consent.trustarc.com ">
内容的提问来源于stack exchange,提问作者Balaji Reddy
相关产品推荐
相关产品推荐

