我们都知道从公共CDN网络加载javascript会带来安全隐患。另一方面,能够缓存这些资源是有好处的。
所以显然必须有一个javascript解决方案,其中使用例如SHA-256的实现来检查jquery从CDN加载后的完整性,但是在评估javascript之前。
这样做的最佳选择是什么?
答案 0 :(得分:0)
如果CDN服务器正在发送CORS标头,您可以使用XHR检索文件并在评估之前验证内容。请注意,这与脚本元素通常同步执行的方式有很大的不同:
<script src="//google.com/jquery"></script>
<script>//jQuery is available</script>
以上将不再可能,所以如果你已经在传统的顺序同步假设下编写了大量代码,那么它可能是不可行的
如果CDN服务器没有发送CORS标头,则无法查看内容。我认为任何解决方法都会破坏目的。
答案 1 :(得分:0)
Subresource Integrity是一个W3C draft specification,它正是这样做的:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"
integrity="sha384-rY/jv8mMhqDabXSo+UCggqKtdmBfd3qC2/KvyTDNQ6PcUJXaxK1tMepoQda4g5vB"
crossorigin="anonymous">
</script>