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

已配置script-src仍提示未显式设置的AWS CloudFront CSP报错问题

可能的故障原因

1. CSP语法错误导致script-src指令被丢弃

你配置的script-src规则开头存在多余的前置分号,CSP解析器会因为语法错误直接忽略整条script-src指令,因此浏览器会 fallback 到default-src规则,和你看到的报错信息一致。
正确的CSP规则格式为不同指令用分号分隔,单条指令开头不需要额外加分号,除此之外多余的未闭合引号、换行、特殊字符都会导致指令解析失败。

2. 配置的哈希值与实际内联脚本不匹配

计算内联脚本哈希时需要完全匹配脚本的所有内容,包括空格、换行、注释、不可见字符,任意字符差异都会导致哈希校验失败,浏览器会拒绝执行对应内联脚本。
另外如果是行内事件处理函数(如onclick="xxx")、javascript:伪协议类的内联脚本,仅配置哈希无法生效,还需要额外添加unsafe-hashes指令。

3. CloudFront缓存未失效

修改CSP配置后如果没有手动触发对应路径的缓存失效,CloudFront边缘节点会继续返回旧的响应头,你更新的script-src规则不会生效。验证时可以通过浏览器开发者工具的网络面板检查实际返回的CSP响应头是否和你配置的一致。

4. 多重CSP规则冲突

检查你的源站是否本身也返回了CSP响应头,或者CloudFront的其他规则(如CloudFront Functions、Lambda@Edge)修改了响应头,多个CSP规则会同时生效,最终允许的范围是所有规则的交集,如果其他CSP规则中没有允许对应哈希,脚本依然会被阻止。

5. 仅配置'self'时脚本无法执行的原因

script-src 'self'仅允许加载和当前站点同域的外部脚本,不会允许执行任何内联脚本,也不允许加载第三方域名的脚本,如果你的页面存在内联脚本、或者引入了其他域名的脚本,自然会被拦截。


内容的提问来源于stack exchange,提问作者Charlie Keegan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:27:00