为何Chrome提示CSP指令'require-sri-for'依赖已禁用的实验性标志?
关于CSP
require-sri-for script 控制台提示的解析与解决 你猜的完全没错!这个提示本质就是浏览器在告诉你:你配置的require-sri-for script指令根本没用武之地,因为对应类型的资源已经被你完全禁用了。
为什么会出现这个提示?
核心逻辑很简单:
require-sri-for script的作用是强制要求所有允许加载的脚本必须附带SRI哈希验证,它生效的前提是你得先允许加载脚本啊!- 如果你的CSP里
script-src设成了'none',意味着没有任何脚本能被加载,这个指令就成了“空指令”——浏览器检测到这种矛盾,就会抛出这个提示,告诉你这个指令依赖的「资源加载权限」是禁用状态。
怎么解决?
根据你的实际需求选下面两种方案就行:
- 直接移除冗余指令:如果你确实不需要加载任何脚本(保持
script-src 'none'),删掉require-sri-for script就完事了,省得浏览器瞎操心。 - 调整CSP配置匹配需求:如果需要加载脚本,先把
script-src改成允许合法来源(比如script-src 'self'、具体CDN域名,或者必要的'unsafe-inline'),同时确保所有加载的脚本都带上SRI哈希。这时候require-sri-for script就能正常发挥作用,提示自然就消失了。
小验证技巧
你可以临时把script-src改成'self',给页面里的某个脚本加上SRI哈希,再刷新页面看看——这时候控制台肯定不会再出这个提示了,因为浏览器确认有可加载的脚本,require-sri-for指令有了生效的场景。
内容的提问来源于stack exchange,提问作者jamieweb
相关产品推荐
相关产品推荐

