摘要:个网站中,有个使用了至少包含有个漏洞的库。如结果所显示的,即便我们只检测,也有的网站使用了有漏洞的版本。调研的产品中有的库使用超过了年。我们本来的预计应该是乐观的,谁都不想看到有的网站都在用有漏洞的库。
本文作者: Tim Kadlec
编译:胡子大哈翻译原文:http://huziketang.com/blog/posts/detail?postId=58df725ba58c240ae35bb8dc
英文连接:77% of sites use at least one vulnerable JavaScript library
转载请注明出处,保留原文链接以及作者信息
前几周有一篇文章介绍说有 37% 的网站使用了至少包含 1 个漏洞的 JavaScript 库。当我们写这个报告的时候,里面提到过,我们预计实际情况会比这个还要更糟。
实际上,要糟的多。
我们在 Alexa 上的 top 5000 网站上跑了测试,发现数字达到了惊人的 76.6%,76.6% 的网站使用了至少包含 1 个漏洞的库。如果你对于我们怎么做的实验比较好奇,那就继续往下看吧。
测试为了做这个测试,我们抓了 Alexa 上 top 5000 的网站 URL。抓的过程中发现有很多网站已经访问不了了,采取的策略是依据排名继续往下抓,直到够了 5000 个 URL 为止。
每个 URL 都用 WebPageTest 跑一遍。WebPageTest 在 Chrome 中加载每个页面,并且执行一些 JavaScript 脚本来判断其使用的 JavaScript 库。
例如为了判断使用的 jQuery 版本,每个页面在加载完成以后都会执行下面代码:
return jQuery && jQuery.fn && jQuery.fn.jquery
包含了检测是否有下面这些库:
jQuery
Handlebars
Mustache
React
Angular
Ember
jQueryUI
YI
Dojo
对于每个检测的版本,都和 Snyk 开源软件漏洞库进行对比,以此来看有多少库包含了已知漏洞。
结果不美丽正如上面提到的,JavaScript 库的安全问题非常糟糕——并没有华丽的外衣掩藏它。5000 个网站中,有 3831 个(76.6%)使用了至少包含有 1 个漏洞的 JavaScript 库。
比例数字这么高,听起来有点吓人,不过正如原始报告中提的那样,实际情况可能更糟。我们测试了 9 个 JavaScript 库,而可用的 JavaScript 框架和库有成百上千个。所测试的 9 个库是这里面最流行的几个,所以比例数字上应该也不会有很大的跃动,也许和实际情况会有几个点的差异。
再次强调,这里只是针对客户端一侧,测试已知的第三方 JavaScript 库漏洞。不包含服务端一侧和自己编写的 JavaScript 服务。一些新的漏洞都会添加到我们的数据库中,有些可能还没有对外公开。
jQueryjQuery 毫无疑问是我们测试的里面最流行的一个了,它的流行度是有据可查的,所有受测的 5000 个 URL 中,有 79% 的使用了 jQuery。
尽管 jQuery 并没有什么特别的,但是它这么流行也导致了它也成为众矢之的,研究它漏洞的比较多(有 5 个已知的漏洞,已经在最新版本中修复了)。
如结果所显示的,即便我们只检测 jQuery,也有 75.1% 的网站使用了有漏洞的版本。这很大程度上取决于产品中 jQuery 库使用了多少年。调研的产品中有 17.4% 的 jQuery 库使用超过了 5 年。这与我们上一份报告的结论很吻合:人们并不经常更新库。
最新没有发现漏洞的 jQuery 版本是 3.0.0 版本以上的。对于当前的 jQuery 用户而言,版本变更并不是那么简单的事情,因为升级很可能会引起 bug,需要系统的整体升级。所检测的 jQuery 在 1.x 版本的竟然达到了 79% 之高。虽然说 jQuery 3.0.0 才发布了 1 年左右,但是只有 3.6% 的网站使用了 3.x 版本,这一数字也确实太低了。
下周我们会对 jQuery 进行深入的分析,因为它实在是太流行了,也使得研究它会比较有趣。
jQuery UI按流行度排的话,下一个就是 jQuery UI 了,受测 URL 中大概占 19.3%。同样地,大多数的 jQuery UI 用户在使用有漏洞的版本,尽管其已经可以进行升级了。受测网站中大概 91% 的 jQuery UI 库都有至少 1 个漏洞。
和 jQuery 一样,很大程度上因为人们不进行升级,有 21% 的网站使用同 1 个 jQuery UI 版本超过 5 年。
Handlebars受测网站中,Handlebar 占到了 3.4%。 其中的 68% 使用了有漏洞的 Handlebars 版本。
和上面一样,使用新版本的反应滞后是这一现象的罪魁祸首。从数据上来看,Handlebars 新版本的使用还比较流行,Handlebars 的最新版本 4.0.6 我们没有检测,检测的是其前一个版本 4.0.5,可以占到总 Handlebars 使用量的 26.7%。
然而由于它的版本发布的特别缓慢(自从 2015 年 11 月以来只发布了两个小版本),这也导致了这些使用了 Handlebars 的网站,一个版本也用了两年了。整体上,超过 3 年的 Handlebars 版本占到了 40%。
React, Mustache, Angular, YUI and DojoReact (1.7%), Mustache (1.6%), Angular (1.3%), YUI (0.7%) and Dojo (0.2%) 。受测网站中,这些框架使用的比较少,所以对他们每个个体的分析结论并不可靠。把它们作为整体来分析的话,有漏洞的情况也很普遍,有 56.3% 的版本都是有漏洞的。
我们得出的有用结论不可否认,调研的结果并不好。我们本来的预计应该是乐观的,谁都不想看到有 77% 的网站都在用有漏洞的库。
需要说明的是,没有一个单一的解决方案可以解决这个问题。相反,需要的是将提高安全意识、使用更好的工具、一套简单可维护的 JavaScript 前端实现方法等相结合(前端包管理工具的使用远不像后端那样普遍)。而这也仅仅是个开始。
但是,正如我们前面所说的,对此依旧满怀信心。第三方 JavaScript 的安全问题是一个可解决的问题,只是比预想的需要更长的时间而已。
由于这份报告的数据敏感性,我们不准备公开原始数据(里面包含了网站列表和易受攻击的网站)。但是如果你网站主,欢迎联系我们查看你的网站是否在这份报告中,以及如果在的话是否在易受攻击列表中。如果你会使用 npm 包,可以使用 Snyk 测试你的网站,也能帮助你发现一些潜在的安全漏洞。
如果本文对你有帮助,欢迎关注我的专栏-前端大哈,定期发布高质量前端文章。
我最近正在写一本《React.js 小书》,对 React.js 感兴趣的童鞋,欢迎指点。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/82368.html
摘要:的网站仍然使用有漏洞库上周发布了开源社区安全现状报告,发现随着开源社区的日渐活跃,开源代码中包含的安全漏洞以及影响的范围也在不断扩大。与应用安全是流行的服务端框架,本文即是介绍如何使用以及其他的框架来增强应用的安全性。 showImg(https://segmentfault.com/img/remote/1460000012181337?w=1240&h=826); 前端每周清单专注...
摘要:不过,根据伯克利大学的这篇文章来看,拥有丰富的开源库,是开发者在选择一门开发语言时,最重要的因素。拥有超过个可用的开源库,是目前世界上最大的开源库集合。月份,我们发布了。这和年的情况是相反的。在的调查中,超过的受访者表示他们正在使用。 showImg(https://segmentfault.com/img/bVblvke?w=693&h=300); 原文标题:This year in...
摘要:下面就是对这种攻击原理的介绍以及预防方法。针对该漏洞的特点,通过覆盖数组构造函数以窃取暴露返回数组,而现在大多数浏览器还无法防范这种攻击。在上周的挪威开发者大会上,我做了一个针对劫持漏洞的演示。 注:作者发表这篇文章的时间较早,某些方法可能并不是最好的解决方案,但针对这种漏洞进行的攻击还依然可见,如早期的:QQMail邮件泄露漏洞。直到现在,你在某些邮箱打开一个外部链妆,依然会有安全警...
摘要:示例攻击如何进行下图展示了攻击者如何进行攻击攻击者利用网站的表单插入恶意字符串到网站数据库中。恰恰相反,至少有两种常见的方式,会导致受害者发起针对自己的反射型攻击。攻击者精心构造了一个包含恶意字符串的,将其发送给受害者。 原文地址:http://excess-xss.com/。如有翻译不当之处,欢迎指出 :D 分为四部分: 概述 XSS 攻击 XSS 防御 总结 第一部分:概述 X...
摘要:近日,一个最新调研报告预测,中国有望超越美国,成为低代码应用的领导者,这一结论再次将低代码推上了热榜。全球技术策略顾问中国区及首席咨询师徐昊认为,目前低代码的推广普遍以降低程序员门槛为目的,想要说服企业使用便宜的人力成本去干活的低代码平台。近日,一个最新调研报告预测,中国有望超越美国,成为低代码应用的领导者,这一结论再次将低代码推上了热榜。 11月2日,由Mendix发布的全球低代码发...
阅读 4077·2021-10-08 10:04
阅读 3060·2021-08-11 11:20
阅读 2730·2021-07-25 21:37
阅读 2680·2019-08-30 12:44
阅读 2305·2019-08-30 11:12
阅读 1313·2019-08-26 13:45
阅读 2337·2019-08-26 11:53
阅读 3056·2019-08-26 11:32