NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 2017-03-15
  • 本文字数:1092 字

    阅读完需:约 4 分钟

虽然使用第三方软件库通常会降低开发的时间,但同时也会增加网站暴露出的攻击表面,对此我们应有充分的认识。因此需要保持第三方软件库的最新版本依赖,以便从安全更新中获益。即便如此,一份近期研究表明,在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 开发有兴趣的开发人员一读。

查看英文原文: Study Shows the Web is Crowded with Outdated, Vulnerable JavaScript Libraries


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-15 19:002458
用户头像

发布了 227 篇内容, 共 71.4 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

一个完整的项目管理流程包括什么?

万事ONES

项目管理 ONES

与微软、IBM同台 斯图飞腾Stratifyd入选G2文本分析Grid报告

pha挖矿/phala挖矿APP系统开发内容

如何对开发团队的人员进行绩效管理?

万事ONES

研发效能 ONES 绩效管理

Rust从0到1-智能指针-Drop trait

rust smart pointer drop trait

见康乘拼团软件开发|见康乘拼团系统APP开发

Redisson 分布式锁源码 07:公平锁释放

程序员小航

Java redis 源码 分布式锁 redisson

在线base64加密解密工具

入门小站

工具

架构实战营模块8 课后作业

En wei

架构实战营

Spring到底应该学哪些内容?

冰河

spring aop ioc 注解驱动 依赖反转

手写链表之LinkedList源码分析

Ayue、

数据结构

Vue3 + TypeScript 开发实践总结

程序员海军

typescript 大前端 Vue3 框架

深入理解搜索引擎——初识query理解

药老算法

搜索引擎 中文分词 query理解 query纠错 query分析

多项目同时进行如何做好项目管理?

万事ONES

【LeetCode】主要元素Java题解

Albert

算法 LeetCode 7月日更

智汇华云|华云数据ArSDN:自主可控的SDN

华云数据

互斥锁Mutex:鸿蒙轻内核中处理临界资源独占的“法官”

华为云开发者联盟

鸿蒙 OpenHarmony 鸿蒙轻内核 互斥锁Mutex 临界资源

毕业季offer怎么拿?收下这份非典型求职面试指南

华为云开发者联盟

面试 职业规划 求职 毕业季 大学生

FIL矿机多少钱一台 ?FIL挖矿成本是多少?

Fil和BTC有什么区别?Filecoin挖矿的行情如何?

IPFS BTC fil fil币

WICC 2021召开在即 清华大学教授将分享AI+网络音视频服务研究

融云 RongCloud

Linux之find exec

入门小站

Linux

腾讯一面 Java Phaser 并发编程的理解与应用

陈皮的JavaLib

Java 面试 多线程

测试开发之网络篇-常用命令

禅道项目管理

Linux 命令行

图的应用——关键路径

若尘

数据结构

pha分币APP系统开发资料

原来这就是Java IO啊····

华为云开发者联盟

Java 操作系统 进程 IO流 Java IO

小白也能看懂的Java内存模型

程序猿阿星

JMM Java内存模型 原子性 有序性 可见性;

如何看待技术采用生命周期 | 【话题讨论】

耳东@Erdong

云原生 话题讨论 7月日更

就在今天,浪潮云说第二期来啦

浪潮云

云计算

【Flutter 专题】92 图解 Dart 单线程实现异步处理之 Isolate (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

研究表明Web充斥着存在漏洞的过期JavaScript库_安全_Sergio De Simone_InfoQ精选文章