如何升级Vue项目安全漏洞的过程总结

前言

随着技术的快速发展,Vue作为流行的JavaScript框架,被应用于前端开发,但是作为开发人员在使用Vue时,需要注意应用的安全性,以便于保护应用数据的安全并且防御常见的攻击行为。

本文介绍的是两个安全漏洞及其解决方法:

背景

这周上线的项目中被公司安全部门漏扫出来一些漏洞,其中有一个是vue版本过低的问题

还有一个是JavaScript框架升级漏洞(如图):

首先对第一个框架漏洞进行介绍:

1、 Vue版本过低

项目之前用的版本是2.6.10,下面是给出的漏洞风险分析

风险分析

vue版本2.6.10存在以下漏洞:将 vue-server-renderer 对serialize-javascript的依赖提升到2.1.2

当时看到这个分析的时候,我先进入安全人员给的链接地址,进行查看官方是哪个版本进行的修复处理的这个漏洞,(2.6.11这个版本进行了修复) ,我一看简单直接去修改package.json 直接换成 "vue": "^2.6.11",紧接着就操作了依赖安装命令:

js 复制代码
npm i 

安装依赖的过程,没有问题,启动命令npm run dev后 报错了,提示如下截图

出现这个问题是与Vue版本不匹配,那时候package.json配置文件,并没有显示这个模板包依赖,进行下载安装后升级到了相同的版本,

js 复制代码
npm i vue-template-compiler@xxxxxx --save  
XXX代表版本号

问题至此解决,这是第一个问题。 接下来处理第二个YUI漏洞修复

二、YUI漏洞

首先给大家看看安全这边给出的风险分析

YUI版本2.9.0存在以下漏洞: YUI 2.8.0 至 2.9.0 的 Flash 组件基础结构中存在跨站脚本 (XSS) 漏洞,如低于 4.0.9 的 Bugzilla 3.7.x 和 4.0.x、低于 4.2.4 的 4.1.x 和 4.2.x 以及低于 4.4rc1 的 4.3.x 和 4.4.x,允许远程攻击者通过与 swfstore.swf 相关的向量注入任意 Web 脚本或 HTML,该漏洞与 CVE-2010-4209 类似等

我看到这个的时候,我全局在代码中搜索 YUI,确实搜到了一段注释

点击进入这个文件后我查看了一下文件路径,发现他在node_modules>jsencrypt中, 网上搜索了一下YUI2 的版本漏洞结果也指出了漏洞问题

YUI是什么

YUI是一套用于构建丰富交互Web应用程序的JavaScript和CSS库。YUI 提供了一系列工具和组件,旨在简化Web开发人员创建动态、可交互的用户界面的过程。

经过查询发现,jsencrypt中只使用了lang.extend方法,并没有进行其他操作,那也就是说安全只是扫描了YUI版本号作为安全漏洞依据。

解决方法:

删除掉YUI版本这块的注释即可。

方法一: 网上搜的办法大部分是使用压缩后(不含注释)的文件:node_modules\jsencrypt\bin\jsencrypt.min.js

js 复制代码
// 旧的引入方式 
import JSEncrypt from 'jsencrypt' 
// 新的引入方式 
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'

方法二:优化vue.config.js打包配置文件

在打包环节删除注释 需要在vue.config.js中配置:

js 复制代码
chainWebpack(config) {
		config.optimization.minimizer('terser').tap(args=>{
			args[0].terserOptions.output={
				comments:false
			}
			return args
		})
	},

这个方法报错了,报错为config.optimization.minimizer(...).tap is not a function, 后来百度又安装了terser-webpack-plugin

js 复制代码
npm install terser-webpack-plugin

方法三:public/index.html中引入jsencrypt.min.js

js 复制代码
public/index.html中引入jsencrypt.min.js (下载到本地放到public/js文件中)
卸载安装的jsencrypt (npm uninstall jsencrypt)  
删除项目中对jsencrypt包的引用

方法二、方法三都试了可以解决问题、成功去掉了注释。

总结

以上为个人经验,希望能给大家一个参考,如有Vue其他安全问题,欢迎大家多多留言。

相关推荐
熊猫_豆豆4 分钟前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
来恩10031 小时前
jQuery选择器
前端·javascript·jquery
前端繁华如梦1 小时前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
CDwenhuohuo2 小时前
优惠券组件直接用 uview plus
前端·javascript·vue.js
川冰ICE2 小时前
TypeScript装饰器与元编程实战
前端·javascript·typescript
AI砖家3 小时前
Vue3组件传参大全,各种传参方式的对比
前端·javascript·vue.js
希望永不加班3 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html
threelab3 小时前
Three.js 3D 地图可视化 | 三维可视化 / AI 提示词
前端·javascript·人工智能·3d·着色器
爱怪笑的小杰杰3 小时前
Leaflet 高性能大数据量图圆:彻底解决缩放/拖拽偏移问题
大数据·前端·vue.js·贴图
失眠的咕噜4 小时前
PDA 安卓设备上传多张图片
android·前端·javascript