Cloudflare注入内联脚本触发CSP报错 结合Netlify部署的解决方案问询
解决思路
- 方案1:使用Cloudflare CSP管理功能自动适配注入脚本
Cloudflare自带CSP配置功能,会自动识别自身服务注入的脚本、资源,自动添加对应的放行规则,不需要手动维护。你可以在Cloudflare控制台的「安全性」-「内容安全策略」中启用配置,关闭Netlify侧的CSP响应头配置,统一由Cloudflare管理即可避免该冲突。 - 方案2:手动添加内联脚本放行规则(保留Netlify CSP配置)
你当前配置的script-src仅放行了Cloudflare的域外资源,而Bot Management的JS检测注入的是内联脚本,需要额外添加对应放行规则:- 先从浏览器控制台的CSP报错信息中复制Cloudflare注入内联脚本对应的SHA-256哈希值,格式为
'sha256-xxxxxxxxx',报错信息中会直接给出该哈希值 - 将该哈希值添加到
netlify.toml中的script-src指令里,调整后的配置参考:
注意:如果Cloudflare后续更新注入的脚本内容,哈希值会发生变化,需要重新获取并更新配置。[[headers]] for = "/*" [headers.values] Content-Security-Policy = "default-src 'none'; script-src 'self' ajax.cloudflare.com cdnjs.cloudflare.com static.cloudflareinsights.com 'sha256-你复制的哈希值';" - 先从浏览器控制台的CSP报错信息中复制Cloudflare注入内联脚本对应的SHA-256哈希值,格式为
- 方案3:临时兜底方案
如果不需要过高的安全要求,可以在script-src中添加'unsafe-inline'临时解决问题,但该配置会降低站点安全等级,不推荐长期使用。 - 验证步骤:配置修改完成后,清理Cloudflare缓存和浏览器缓存,再访问站点验证报错是否消失。
内容的提问来源于stack exchange,提问作者JueK3y
相关产品推荐
相关产品推荐

