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

news/2024/4/27 14:46:29/文章来源:https://blog.csdn.net/weixin_34088838/article/details/89068593

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

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_799025.aspx

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

相关文章

International SEO:多语言多区域网站SEO的快速入门指南

随着经济全球化的不断发展,我们的用户受众不再仅仅是当地国家,多语言多区域的网站、平台越来越多。如果您有一个或多个以多种语言面向国际或不同国家、区域提供不同内容的门户网站,那您需要尽最大的努力扩大您的国际受众范围,确保…

Golang 学习权威网站

Golang 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Golang 是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在201…

在Windows Azure上创建ASP.NET MVC网站

本篇体验在Windows Azure上创建ASP.NET MVC网站。 →登录到Windows Azure管理门户→点击左下方的"新建" →点击"自定义创建",在界面中填写如下:注意:用户名就是服务器的管理员登录名。点击确定。 →点击网站名称。 →点击…

让你的网站秒配 HTTPS 证书

原谅我当一次标题党 网站为什么要配置 HTTPS,以及配置 HTTPS 有什么优点就不再解释了,我们直奔主题,使用 Certbot 工具让你的网站秒配 HTTPS 证书。 Certbot 介绍 Certbot is an easy-to-use client that fetches a certificate from Let’s …

Drupal 曝出代码执行高危漏洞,数百万网站受影响

百度智能云域名服务,.com新用户首购仅需25元 Drupal 开源内容管理系统曝出了一个允许黑客远程执行代码的高危漏洞,影响数以百万计的网站,如果不及时打补丁,这些使用 Drupal 的网站将面临被劫持的风险。 漏洞编号 CVE-2019-6340&…

使用jenkins配置.net mvc网站进行持续集成三

前两篇讲解了Jenkins的配置和VS远程发布,现在还有一个问题,VS项目远程发布的时候,配置的是覆盖所有文件重生成的,而通常类似于配置文件这种东西,在本地开发环境和测试环境是不一样的。所以我们通常需要先把测试服务器上…

[转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言搭建项目及其它准备工作 创建数据库创建Koa2项目安装项目其它需要包清除冗余文件并重新规划项目目录配置文件规划示例路由,并新建相关文件实现数据访问和业务逻辑相关方…

提供图片服务网站

有了这些图片API,可以获取随机图片,很适合做Blogs背景图片 1、Unsplash API:https://unsplash.com/developers 接口文档:https://unsplash.com/documentation#get-a-random-photo 例:https://source.unsplash.com/1920…

网站架构核心设计知识(三)之高并发

转载于:https://www.cnblogs.com/htkj/p/11055765.html

省政府网站绩效评估细则及方法

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />各省电子政务办公室针对于网站做出了绩效评估细则及方法&#xff0c;然后各厅、局、科室等惯彻省里的思想&#xff0c;对自己所管辖范围内的政府网站进行人性化评估。以下就是湖北…

转载 --电子商务基础:中小企业建站方案和资源

目前国内的中小企业数量已经有几千万家&#xff0c;但信息化建设却并不理想&#xff0c;拥有网站的只有不超过两百万家&#xff0c;数以千万计的中小企业存在电子商务需求&#xff0c;却没有自己独立的网站。现在&#xff0c;越来越多的企业意识到通过建立网站开展电子商务的重…

分享10个免费H5模版(主题)资源网站

并非所有程序员都是伟大的设计师&#xff08;实际上我认识的大部分程序员审美都很要命&#xff09;。所以即使你心血来潮想为自己开发的网站做一把设计&#xff0c;但显然并不是所有用户想为此付钱。。所以在找不到靠谱的美工的时候&#xff0c;还是老老实实的看看有没有现成的…

导航之变—移动网站的导航设计

导航是互联网网站最重要的组成部分之一&#xff0c;它涉及到产品的信息架构、页面布局和用户交互行为等诸多方面。一个网站用户体验的优劣往往和导航的优劣有密切的联系。 随着移动互联网的发展&#xff0c;越来越多的网站以移动网站的形式移植到手机上。在网站移植过程中&…

薛峰SEO培训:优化网站前的思考

2019独角兽企业重金招聘Python工程师标准>>> 学习SEO的五个步骤 1.初步的了解SEO 2.重复是学习之母 3.开始运用你所学到的SEO知识 4.融汇贯通所学的SEO知识。 5.再一次地加强SEO的学习 定位与资源成反比 量力而行 不可能做大型门户如&#xff1a;娱乐门户 游戏门户 …

优秀网页设计:35个吸引眼球的精美作品集网站

作品集网站是设计师、艺术家和摄影师展示个人作品的最佳方式&#xff0c;因为网站能够非常便捷和直观的向潜在客户呈现其作品。同时&#xff0c;网站也能体现出作者的创意能力和专业水平。下面推荐的35个优秀作品集网站在网站布局&#xff0c;色彩运用方面都非常的好&#xff0…

视频直播网站开发千万不能忘的一个知识点

对于视频直播网站开发的技术人员来讲&#xff0c;音视频即时通讯技术是需要熟练掌握的。毕竟像直播这样重视互动和实时性的应用场景&#xff0c;即时通讯可以从中起到很大的配合作用。目前市面上有很多服务商所提供的SDK可以帮助实现这一技术&#xff0c;但是在选择哪一家服务商…

做了个新网站http://qq.ihaonet.com/全球最大QQ聊天交友网站

做了个新网站http://qq.ihaonet.com/全球最大QQ聊天交友网站 有什么建议欢迎大家点评&#xff0c;谢谢&#xff01;

应该常去的一些网站

2019独角兽企业重金招聘Python工程师标准>>> IT相关的话&#xff0c;国外&#xff1a; http://stackoverflow.com/ http://www.techrepublic.com/ http://www.theserverside.com/ http://www.infoq.com/ (中文网&#xff1a;http://www.infoq.com/cn) http://www…

《转》VS2012发布网站详细步骤

本文转载自MannyGuo 如果给您带来不便请联系博主 1、打开你的VS2012网站项目&#xff0c;右键点击项目》菜单中 重新生成一下网站项目&#xff1b;再次点击右键》发布&#xff1a; 2、弹出网站发布设置面板&#xff0c;点击<新建..>,创建新的发布配置文件&#xff1a; 输…

Python+Bottle+Sina SAE快速构建网站

Bottle是新生一代Python框架的代表&#xff0c;利用Bottle构建网站将十分简单。 Sina SAE是国内较出名的云平台之一&#xff0c;十分适用于个人网站的开发或创业公司网站开发。 下面将介绍如果通过PythonBottleSina SAE快速搭建一个网站。 1.注册Sina SAE账号后&#xff0c;创建…