Javascript加密哈希保护的加载器

时间:2013-06-20 12:38:04

标签: javascript cdn sha

我们都知道从公共CDN网络加载javascript会带来安全隐患。另一方面,能够缓存这些资源是有好处的。

所以显然必须有一个javascript解决方案,其中使用例如SHA-256的实现来检查jquery从CDN加载后的完整性,但是在评估javascript之前。

这样做的最佳选择是什么?

2 个答案:

答案 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>