FireFox加载cdnjs资源时sha256哈希不匹配问题排查求助
问题分析与结论
根据你遇到的情况,咱们来拆解下问题根源:
1. 先排除自身请求方式的问题
你使用的是标准的Subresource Integrity (SRI)写法,而且其他CDN(比如maxcdn、code.jquery.com)的同类资源在相同环境下完全正常,同时Chrome、IE11等其他浏览器也没有出现这个问题,说明你的资源请求方式是完全正确的,不存在写法上的错误。
2. 关于FireFox的可能性
虽然问题只出现在FireFox中,但其他浏览器无异常、且仅在荷兰地区PC强制刷新时复现,说明这不是FireFox的普遍bug,更可能是FireFox对SRI校验和HTTPS连接的检测逻辑更严格,刚好触发了CDN节点的异常。所以FireFox本身不是问题的根源,只是“暴露问题”的那个角色。
3. 最可能的根源:cdnjs的边缘节点异常
结合报错信息和复现场景,这大概率是cdnjs的荷兰地区边缘节点出了问题:
- 强制刷新(CTRL+F5)会绕过浏览器缓存,直接从CDN节点拉取资源,这时候如果节点上的资源文件内容和你指定的
sha256哈希值不一致,就会触发None of the "sha256" hashes in the integrity attribute match the content of the subresource错误。 - 同时出现的
The connection used to fetch this resource was not secure报错,说明该节点的HTTPS连接配置可能存在异常(比如返回了HTTP内容、证书链不完整/过期,或者节点路由出现了HTTP劫持),导致FireFox判定连接不安全。 - 其他CDN资源无问题,进一步佐证了这是cdnjs节点的区域性异常,而非你的网络环境问题。
临时解决建议
- 可以临时将出问题的cdnjs资源替换为其他可靠CDN的对应版本,保证网站正常运行;
- 若只是临时排查,可暂时移除SRI属性(不推荐长期这么做,会失去资源完整性校验的安全保障);
- 继续跟进你在Mozilla论坛和cdnjs GitHub仓库提交的问题,等待官方修复节点或给出适配方案。
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

