【发布时间】:2018-11-04 11:54:38
【问题描述】:
我们创建了一个使用来自cdnjs 的资源的网站。这个网站已经上线了几个月,但我们在来自这个 CDN 和 FireFox 的资源方面遇到了零星的问题。
- 每个脚本/样式 CDN 资源的控制台中的错误是:
完整性属性中没有一个“sha256”哈希与子资源的内容匹配。
- 每个资源的网络选项卡中的错误消息是:
用于获取此资源的连接不安全
我遇到问题的资源包括这些元素(它们出现在我们的网页中):
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.4/css/bootstrap-dialog.min.css" integrity="sha256-wstTM1F5dOf7cgnlRHIW3bmoRAAGh6jL7tMIvqTuFZE=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" integrity="sha256-yMjaV542P+q1RnH6XByCPDfUFhmOafWbeLPmqKh11zo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqtree/1.4.4/jqtree.min.css" integrity="sha256-ymsp1QFcwiJbIgAoSOkMtqe4GFczZH1KjXLq6y5f+QY=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.4/js/bootstrap-dialog.min.js" integrity="sha256-IpgnbT7iaNM6j9WjtXKI8VMJ272WM9VvFYkZdu1umOA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment-with-locales.min.js" integrity="sha256-K+AZsAFjiBd4piqBmFzaxDsiQiHfREubm1ExNGW1JIA=" crossorigin="anonymous"></script>
重现步骤
您可以使用上述 URL 之一重现该问题,并将其直接放在 FireFox 浏览器的 URL 中。资源应该在浏览器窗口中加载,但在按下CTRL+F5 至少一次(最多可能是 5 次)后会出现错误。尽管我们位于荷兰,但我可以从多台 PC 上复制它,所以可能是时间问题或类似的问题(超出我的专业知识)?
我们使用的来自其他 CDN 的任何其他资源都不会发生这种情况,如下所示:
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
我的环境:
- Windows 10 Pro 64bit 已修补至最新版
- FireFox 60.0.1(64 位)
我的问题
这是 cdnjs 特有的问题,他们必须解决这个问题,还是 FireFox 的问题,或者这是我们如何请求资源的问题?
附带说明一下,我们还定期在 Google Chrome、MS Internet Explorer 11、MS Edge 和 Opera 上测试我们的软件,并且从未在这些浏览器(或任何其他浏览器)上遇到此问题。
我已经在 Mozilla 的论坛上created a post,但响应是这超出了范围,建议将其发布在 SO 上或在 GitHub 上提交错误。我还没有完成后者,因为我(还)不相信这是 FireFox 中的一个错误。我还提交了issue on cdnjs's github repo。
【问题讨论】:
-
这实际上是一个 Firefox 错误,因为 SRI 匹配。没有其他浏览器可以做到这一点。
-
同样是我们的情况似乎是一个 FF 错误,因为我们使用来自 CDN 提供商的完整性代码,它适用于几乎所有浏览器,除了 1-2 个 FF 浏览器实例
-
是的,这个问题很老了,但 Firefox 甚至现在也有这个问题。每次我使用网络节流工具(GPRS 和常规 2G)模拟慢速连接时,都会发生这种情况
-
我也可以在 Firefox v75.0 上确认此行为。
标签: firefox cdn cloudflare