首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CDN交付jQuery的安全性如何?

CDN交付jQuery的安全性如何?
EN

Stack Overflow用户
提问于 2010-08-16 05:26:41
回答 4查看 4.8K关注 0票数 24

我们构建具有公共(非安全)区域和安全(通过HTTPS交付)区域的站点,并且我们使用jQuery库。

最近,我建议使用Google CDN进行jQuery交付。我的一些同事对这种交付JavaScript库的方式的安全性表示了担忧。

例如,他们提到有人可能劫持DNS服务器,然后注入恶意修改的库,从而为不同的安全攻击打开了大门。现在,如果黑客可以通过Google CDN注入恶意代码,那么如果jQuery是从网站本身提供的,那么他可能也可以这样做,对吧?

google CDN似乎支持通过SSL为库提供服务。

从CDN提供jQuery服务真的比从服务器本身提供更不安全吗?这个威胁有多严重?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-21 08:27:28

降低风险的一种方法是对从Google获得的文件运行校验和,并将其与您拥有的已知良好的校验和进行比较。

在回答关于谷歌是否以任何方式修改这些文件的问题时,谷歌员工对谷歌提供的文件的规范版本进行了Ben Lisbakken suggested comparing MD5 checksums,该文件是从维护人员的主页获得的。阅读链接站点上的评论8以了解上下文。

如果你担心DNS劫持,那么同样的担忧也适用于从“原始”站点获得的文件。您还可能不希望在每次请求时都对jQuery文件运行校验和,这会导致速度损失--除非您非常偏执。当然,这样做会消除使用CDN的所有优势。

但是假设你只是有点偏执,你可以尝试这样做:

  • 确保您引用的是来自谷歌的唯一且特定版本的jQuery文件。例如,执行以下操作:

http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

而不是这样:

http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

后一个版本现在可能会返回1.4.2,但明天可能会返回1.4.3。如果您同时需要http和https,则可以使用协议相对URL,如下所示:

//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

  • Initially为此file.

  • Periodically生成并存储您自己的校验和重复该过程,并确保新校验和与旧校验和匹配。如果没有,那就试试klaxons吧。

当然,您可以通过编程方式完成此操作。你决定什么时间间隔是有意义的。每一分钟?每五次?你现在有了一个自动关闭开关的材料,你可以根据自己的喜好来调整它的灵敏度。"monitor“例程当然不必在您希望保护的应用程序中同步运行;也许您只是为了这个目的而在同一服务器上运行一个小型实用程序。

测试非常简单:只需更改存储的散列即可。由于您引用的是特定的文件版本,因此不会在每次次要版本更新时都按下紧急按钮。当您确实希望迁移到新版本的jQuery时,请更改站点上的AJAX API URL并存储新的散列。

票数 7
EN

Stack Overflow用户

发布于 2017-04-15 19:54:08

从CDN为jQuery提供服务真的比从服务器本身提供更不安全吗?

是。如果它是一个外部资源,那么它总是不太安全的。如果你不拥有源代码,你怎么可能确定你知道你的客户真正得到了什么呢?如果您不熟悉CloudBleed,那么在继续之前,您可能需要先阅读一下。

如果出于性能原因,您确实需要从外部CDN加载jQuery,请确保您使用的是Subsesource Integrity。更多关于MDN上的SRI can be located的信息。

最后,如果由于网站性能和单点故障的创建,通过CDN安全地加载jQuery是一个问题(如果你对Steve Souders的工作很熟悉,这应该是一个问题),从安全和性能的角度来看,几乎可以肯定的是,在内部移动所有脚本并使用Fetch Injection并行加载它们会更好。只要确保,如果你这样做,你是积极的浏览器缓存。如果您服务于全球受众,请确保您正在对这些资产进行边缘缓存。

票数 3
EN

Stack Overflow用户

发布于 2010-08-16 05:39:30

正如您的同事所指出的,劫持DNS服务器在这里将是一个问题。如果您从与您的站点相同的主机上为库提供服务,则不会是这样。但是,如果使用HTTPS,攻击者不太可能在被欺骗的站点上拥有有效的证书。我不知道浏览器会对此作何反应,但我怀疑他们会将站点标记为不安全(因为它的某些部分是不可信的),并采取相应的行动。

所以简而言之,如果CDN也是通过HTTPS访问的,应该不会有太大的风险。

编辑:还考虑了Gert提到的隐私问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3489344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档