CSP报错:策略中已引用端点仍提示未被允许该如何解决?
根因分析
- 首要原因是配置语法错误:从报错的编码信息可以看到,你配置的源末尾被额外附加了编码为
%22的双引号,实际生效的源变成了https://cdn.userway.org/*",自然无法匹配正常的请求地址。 - 次要原因是通配符使用误区:
https://cdn.userway.org/*这类带路径通配符的写法在部分旧版本浏览器的CSP实现中兼容性较差,属于不必要的写法。
修复步骤
- 先清理配置中的语法错误:
- 如果是HTTP响应头配置CSP,检查输出的头信息中是否有多余的引号、转义字符
- 如果是通过
<meta>标签配置CSP,注意用单引号包裹整个指令内容,避免和HTML属性的双引号冲突
- 将
connect-src指令中的https://cdn.userway.org/*替换为不带路径通配符的写法即可:connect-src 'self' https://cdn.userway.org;
CSP标准规定,仅指定 origin(协议+域名,默认端口可省略)没有额外路径限制时,默认允许该 origin 下的所有路径请求,兼容性远好于带路径通配符的写法。
内容的提问来源于stack exchange,提问作者VikR
相关产品推荐
相关产品推荐

