You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过日志与拦截逐步移除unsafe-* CSP?双Header失效问题

关于分步移除CSP unsafe-*规则的问题解答

不用直接从步骤1跳到步骤3,你可以通过正确配置双CSP头来实现步骤2的目标——拦截unsafe-eval但仅上报unsafe-inline的违规。

正确的双CSP配置方式

  • 强制生效的CSP(Content-Security-Policy):设置为 script-src 'self' 'unsafe-inline';
    • 这个策略会直接拦截eval类代码(因为未包含'unsafe-eval'),同时允许内联JS执行,满足你“阻止unsafe-eval”的核心需求。
  • 仅上报的CSP(Content-Security-Policy-Report-Only):设置为 script-src 'self';
    • 这个策略不会拦截任何内容,但会把所有使用内联JS的行为记录为违规上报,实现“仅上报unsafe-script”的目的。

你之前测试异常的原因

你之前的配置中,内联JS能执行是因为强制策略明确允许了它,而出现的报错是仅上报策略在记录违规的正常表现——浏览器会优先执行符合强制策略的内容,同时上报违反仅上报策略的行为,这并非策略冲突,是双CSP的正常工作逻辑。

后续迁移注意

收集上报数据期间,逐步替换所有内联JS(比如转为外部脚本、使用nonce或hash),等内联JS全部清理完成后,再进入步骤3:将强制CSP改为script-src 'self';,同时移除仅上报CSP即可。

内容的提问来源于stack exchange,提问作者Ludwig Van Beethoven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:03:14