研究表明Web充斥着存在漏洞的过期JavaScript库

简介:

虽然使用第三方软件库通常会降低开发的时间,但同时也会增加网站暴露出的攻击表面,对此我们应有充分的认识。因此需要保持第三方软件库的最新版本依赖,以便从安全更新中获益。即便如此,一份近期研究表明,在Alexa排名前7.5万名的网站中,有37%的网站至少存在一处漏洞,近10%的网站至少存在两处漏洞。举个例子,在导入了jQuery软件库的网站中,有36.7%使用的是存在着漏洞的版本;在使用Angular的网站中,有40.1%使用的是存在漏洞的版本,而导入Handlebars和YUI 3的网站中,有超过85%使用的是存在漏洞版本。更令人震撼的是,在Alexa排名前500名的网站中,有26%使用了存在漏洞的软件库。

美国东北大学Tobias Lauinger、Abdelberi Chaabane等人领导的研究小组基于Bower和Wappalyzer的统计信息,构建了一个包括全部72个最广泛采用的开源软件库列表,然后着手识别被分析Web网站中使用了哪些库。此外,研究人员创建了一个Chrome扩展,用于构建一种网站的因果关系树。该树有助于展示特定软件库的导入原因,是直接包含而来,还是间接地从广告、跟踪或社会媒体代码传递而来。研究分析了超过13.3万个Web网站,其中包括Alexa排名前7.5万的网站,以及其他随机从.com域名中选取的7.5万个网站。这种网站选取方式有助于比较高流量网站与其它较少访问的网站,进而获取具有共性的结果。

除了上面提及的37%的网站易受攻击之外,研究中还给出了如下几个值得关注的结果:

总体上,Web网站使用第三方软件库的版本过期情况令人惊讶。对于Alexa排名前7.5万的网站,在用软件库与最新版本软件库之间的平均拖后时间是1177天(三年以上)。 通常,包含存在漏洞的软件库的问题是由外部组件所致,例如广告、跟踪或社会媒体挂件等。 另一个风险因素来自于对软件库的重复包含,从漏洞的角度看,这为不确定行为提供了空间。
研究给出的结论是这种现状难以纠正。原因在于广泛采用的软件库普遍缺乏向后兼容的安全补丁,还在于JavaScript生态系统的组织方式,其中:

……没有可靠的漏洞数据库,没有软件库厂商维护的安全邮件列表,发布公告中很少甚至没有安全问题的细节,通常难于确定具体哪个软件库版本受到了已报告的特定漏洞的影响。

纵然如此,这一研究无疑是在正确方向上迈出的第一步,值得所有当前对JavaScript开发有兴趣的开发人员一读。

本文转自d1net(转载)

目录
相关文章
|
5天前
|
JavaScript 前端开发 C++
【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
【5月更文挑战第2天】【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
|
6天前
|
JavaScript 前端开发 开发者
【Web 前端】什么是JS变量提升?
【5月更文挑战第1天】【Web 前端】什么是JS变量提升?
【Web 前端】什么是JS变量提升?
|
7天前
|
开发框架 JavaScript 前端开发
【JavaScript 与 TypeScript 技术专栏】TypeScript 在 Web 开发中的前沿应用
【4月更文挑战第30天】TypeScript在Web开发中日益重要,以其强大的类型系统提升代码质量,支持组件化开发,与React、Vue、Angular等框架良好集成。在大型项目管理中,TypeScript助于代码组织和优化,提高团队协作效率。此外,它提升开发体验,提供智能提示和错误检测。众多成功案例证明其前沿应用,未来将在Web开发领域持续发挥关键作用。
|
7天前
|
JavaScript 前端开发 IDE
【JavaScript与TypeScript技术专栏】TypeScript在JavaScript库与框架开发中的作用
【4月更文挑战第30天】TypeScript,微软开发的JavaScript超集,以其强类型和面向对象特性,正成为提升Web项目质量和效率的关键工具,尤其在库和框架开发中。它通过类型系统减少运行时错误,提供内置文档,便于重构,增强IDE支持,以及支持模块化。流行框架如React、Angular已支持TypeScript,未来有望成为开发高质量库和框架的标准语言。随着社区增长,TypeScript将在Web开发领域扮演更重要角色。
|
7天前
|
移动开发 JavaScript 前端开发
【JavaScript技术专栏】Web Worker在JavaScript中的应用
【4月更文挑战第30天】HTML5的Web Worker API解决了JavaScript单线程性能瓶颈问题,允许在后台线程运行JS代码。本文介绍了Web Worker的基本概念、类型、用法和应用场景,如复杂计算、图像处理和数据同步。通过实例展示了搜索建议、游戏开发和实时数据分析等应用,并提醒注意其无法直接访问DOM、需消息传递通信以及移动端资源管理。Web Worker为前端开发提供了多线程能力,提升了Web应用性能和用户体验。
|
8天前
|
JavaScript 前端开发 开发者
【Web 前端】JS模块化有哪些?
【4月更文挑战第22天】【Web 前端】JS模块化有哪些?
|
8天前
|
前端开发 JavaScript
【Web 前端】 js中call、apply、bind有什么区别?
【4月更文挑战第22天】【Web 前端】 js中call、apply、bind有什么区别?
【Web 前端】 js中call、apply、bind有什么区别?
|
8天前
|
前端开发 JavaScript 索引
【Web 前端】JS的几种具体异常类型(报错)
【4月更文挑战第22天】【Web 前端】JS的几种具体异常类型(报错)
|
8天前
|
前端开发 JavaScript
【Web 前端】JS继承的方法有哪些?
【4月更文挑战第22天】【Web 前端】JS继承的方法有哪些?
|
8天前
|
自然语言处理 前端开发 JavaScript
【Web 前端】什么是JS闭包?
【4月更文挑战第22天】【Web 前端】什么是JS闭包?