CSP默认策略阻止Preload请求,缺失哪个指令?
问题分析与解答
缺失的CSP指令是 prefetch-src。
原因说明:
<link rel='next'>触发的是浏览器的预获取(prefetch)行为,这类资源加载受CSP的prefetch-src指令管控。- 当前CSP配置未显式声明
prefetch-src,因此会 fallback 到default-src的规则。当default-src设为'none'时,预获取请求被直接阻止;改为'self'后,fallback 规则允许同域资源预加载,问题自然解决。 - Safari出现类似问题也是同样逻辑:未指定
prefetch-src时依赖default-src,导致分页URL的预获取请求被拦截。
修复建议:
无需修改 default-src,只需在CSP配置中添加 prefetch-src 'self'; 即可,既能保持 default-src 'none' 的严格性,又能允许同域下的<link rel='next'>预加载。
内容的提问来源于stack exchange,提问作者Pieter
相关产品推荐
相关产品推荐

