【发布时间】:2017-01-17 13:01:46
【问题描述】:
我在我的 web 应用程序中使用了一些用于 javascript 和 CSS 的 CDN 链接,例如:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"
integrity="sha384-I6F5OKECLVtK/BL+8iSLDEHowSAfUo76ZL9+kGAgTRdiByINKJaqTPH/QVNS1VDb"
crossorigin="anonymous"></script>
通常一切正常,但有时我会在 Firebug 控制台中收到此消息:
完整性属性中没有一个“sha256”哈希与子资源的内容匹配。
如果发生这种情况,我的 javascript 将无法加载并且我的应用程序已损坏。一个简单的刷新将解决这个问题。我不想摆脱 CDN 链接并自己托管文件,而是想解决这个问题。这是个常见的问题吗?
【问题讨论】:
-
你为什么不简单地使用:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"</script> -
因为完整性属性允许浏览器检查加载的文件是否未被篡改。见stackoverflow.com/questions/32039568/…
-
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script> -
谢谢,但可惜:“完整性属性中包含的哈希无法解码。”
-
jquery 网站给了我这个: 似乎工作。也许这是一个云耀斑的事情。我将尝试使用 SHA256 编码替换所有 CDN 其他主机
标签: javascript jquery css cdn integrity