77% 的网站使用了至少有 1 个漏洞的 JavaScript 库

news/2024/4/27 8:49:24/文章来源:https://blog.csdn.net/weixin_34132768/article/details/87948545

本文作者: Tim Kadlec

编译:胡子大哈

翻译原文:huziketang.com/blog/posts/…

英文连接: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 服务。一些新的漏洞都会添加到我们的数据库中,有些可能还没有对外公开。

jQuery

jQuery 毫无疑问是我们测试的里面最流行的一个了,它的流行度是有据可查的,所有受测的 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 Dojo

React (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 感兴趣的童鞋,欢迎指点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_740896.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于大型网站技术演进的思考(十三)--网站静态化处理—CSI(5)

讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么是CSI技…

360极速浏览器打不开国内网站的一种解决方法

360极速浏览器打不开国内网站的一种解决方法一、问题描述二、解决办法一、问题描述 点击东北大学官方网站,显示您访问的网页出错了。 二、解决办法 点击右上角的三横线的图标——代理服务器——不使用代理服务器——重新打开浏览器。

小程序-下载bing网站壁纸并设为桌面

目的:下载cn.bing.com或http://www.bing.com/的背景图片,并将其设为壁纸 思路:根据用户输入的地址,首先下载对应网址的页面并解析其中的图片地址。接着下载图片,调用系统api将其设为壁纸。其中的下载都使用socket来实现…

LNMP网站架构方案分析

2019独角兽企业重金招聘Python工程师标准>>> LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Nginx网络服务器,MySQL数据库,PHP编程语言&am…

php网站留言,php实现网站留言板功能

php实现网站留言板功能发布于 2016-01-14 09:57:49 | 1045 次阅读 | 评论: 10 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,…

拍卖网站开发新风潮?阿里的拍卖平台正在这么做

如今,线上拍卖成为新的风潮、司法拍卖火爆,网络拍卖将成为下一个电商市场,拍卖网站开发新风潮。 学霸的高分笔记值多少钱?1897年的可口可乐运货单你感兴趣吗?井柏然写的三行情书怎么卖?一个大学生把他的脑门当作广告位,你会出价…

html链接防抓取了,为防止别人轻易抓取自己网站页面,对自己网站JS进行16进制加密...

网站开发人员开发好网页在网上发布后,经常遇到自己辛苦开发好的静态页面被别人轻易的copy去。这时候就需要我们对网站采取一些加密措施,其中有一个方式:加密js文件!对静态页面(html)加载的js引用文件进行加密,一般加密…

40水平滚动网站推荐-视差背景效果的运用(下篇)

使用视差滚动效果做网站的第一个感觉是设计网站的这个工程师水平不一般,做出来的网站是那么的大气,吸引人,每次我遇到这样的网站我都会从头到尾挨个点击一遍,他们的每个功能,每个细节都是那么的完美,往往我…

uniapp中qrcode生成二维码后传的参数不见了_【网站】你们要的二维码生成工具!...

南郡丨二维码工具将文章内容、网址链接、图片、文件等生成二维码以方便用户直接扫码查阅,也是我们必须掌握的技能,关于二维码生成工具,大家可以试试下面这几款工具。草料二维码丨https://cli.im/草料是大家最为熟知的二维码生成器&#xff0c…

mongoose 批量修改字段_WP菜鸟建站28:wordpress网站改域名后,批量修改图片地址...

一般情况下,对于一个wordpress网站的站长来说,不会轻易地更换自己网站的域名。因为,域名就相当于一个wordpress网站的身份证号,用户可以通过这个域名,就可以对号入座地找到你的网站。再一个原因,如果更换域…

网站优化怎样的外链能轻松收录,网站外链优化攻略

有些事情,让你感到很无奈,网站外链优化也是如此,往往那些很容易发布网站外链的地方,价值不大,而不容易发布外链的地方,一旦发布上去了,效果胜过几十条甚至更多的外链,而且可以轻松让…

Java生成sitemap网站地图

访问我的博客 sitemap 是什么?对应没有接触过网站 SEO 的同学可能不知道,这里引用一下百度站长的一段解释。 Sitemap(即站点地图)就是您网站上各网页的列表。创建并提交Sitemap有助于百度发现并了解您网站上的所有网页。您还可以使…

解决ASP.NET网站发布问题

目录 前言 开始 aspx.cs文件放到单独的类库项目 一个可选择勾选页面的发布工具:LimusicAddin 前言 Asp.net 发布分为:动态编译和预编译。预编译又分为:In Place Pre-compilation 和 Pre-compilation for Deployment。关于asp.net编译&#xf…

弊端重重的传统影楼,优兔家摄影网站赋予新生机

关键词:网站建设,H5响应式网站,摄影网站建设 关于优兔家 U2(优兔家)新派视觉摄影,由资深广告创意人主理,是一个善于挖掘个人美态的摄影团体,为用户提供状容造型、专业摄影、后期润饰…

html amp css自学网站,HTMLamp;CSS——网站注册页面,

HTML&CSS——网站注册页面,1、表单标签所有需要提交到服务器端的表单项必须使用括起来!form 标签属性: action,整个表单提交的位置(可以是一个页面,也可以是一个后台 java 代码)method,表单提交的方式(get/post/delete……等…

HTTrack - 克隆任意网站

HTTrack可以克隆指定网站-把整个网站下载到本地。 可以用在离线浏览上,也可以用来收集信息(甚至有网站使用隐藏的密码文件)。 一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做的。…

第13节 IIS之WEB服务器—用于发布网站

IIS之WEB网站发布服务器0 引言1 WEB服务器相关概念2 部署WEB服务器—以win2003为例2.1 安装WEB服务器软件2.2 发布静态网站2.3 发布动态网站3 一台服务器发布多个web网站—以win2003为例3.1 方法1:增加多个IP地址3.2 方法2:设置不同端口号3.3 方法3&…

iframe嵌入其他网站,如何自适应高度

终于有一周时间,工作不那么忙了,腾出手来总结下工作过程中学到的知识。 每天遇到新问题,解决新问题,但是却很少有时间去仔细研究下,或者总结下。攒的多了,就得从头捋一遍。 说下iframe自适应高度&#xff1…

【Linux系统】第13节 CentOS系统中采用Apache发布网站以及访问控制配置详解

目录1 CentOS系统中Apache的安装1.1 安装前检查1.2 配置IP地址1.3 安装及检查2 主页建立与编辑3 Apache主配置文件分析4 访问控制设定4.1 客户机地址限制4.1.1 客户机地址限制原理4.1.2 客户机地址限制示例14.1.3 客户机地址限制示例24.2 用户授权限制5 归纳参考文章1 CentOS系…

【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例(具有用户注册、登录、注销、修改信息、留言等功能)

目录1 实验环境2 网站页面功能规划2.1 论坛首页2.2 个人中心2.3 实现留言功能2.4 数据库及连接数据库3 实验阶段一:实现注册、登录、注销和更新头像等功能3.1 数据库3.2 论坛首页./index.php3.3 个人中心注册页面./member/register.php3.4 接收来自注册页面的表单数…