uni-app @dcloudio/uni-mp-weixin 依赖中的 "file-type": "^9.0.0" 和 "jpeg-js": "^0.3.4" 两个依赖被扫描存在漏洞
uni-app @dcloudio/uni-mp-weixin 依赖中的 “file-type”: “^9.0.0” 和 “jpeg-js”: “^0.3.4” 两个依赖被扫描存在漏洞
操作步骤
npm install , package-lock.json 存在 “file-type”: “^9.0.0”、“jpeg-js”: “^0.3.4”
预期结果
package-lock.json 存在 “file-type”: “^16.0.0”、“jpeg-js”: “^0.4.4”
实际结果
package-lock.json 存在 “file-type”: “^9.0.0”、“jpeg-js”: “^0.3.4”
bug描述
@dcloudio/uni-mp-weixin 3.0.0-4000720240327002 依赖 “file-type”: “^9.0.0”、 “jpeg-js”: "^0.3.4"这两个依赖被扫描存在漏洞. 目前业务只是利用h5部分业务不需要其他端,怎么进行升级处理
开发环境与版本信息
项目创建方式 | PC开发环境操作系统 | PC开发环境操作系统版本号 | 浏览器平台 | 浏览器版本 | CLI版本号 |
---|---|---|---|---|---|
CLI | Mac | macOs14.5 | IE | 8 | 3.0.0-4000720240327002 |
我处理下,你可以临时在 npm 中添加 resolutions 补充高版本依赖
如果仅需要进行 web 端开发,可以删减 package.json 中多余的依赖及命令,例如精简到如下配置:
{
“name”: “uni-preset-vue”,
“version”: “0.0.0”,
“scripts”: {
“dev:custom”: “uni -p”,
“dev:h5”: “uni”,
“dev:h5:ssr”: “uni --ssr”,
“build:custom”: “uni build -p”,
“build:h5”: “uni build”,
“build:h5:ssr”: “uni build --ssr”
},
“dependencies”: {
“@dcloudio/uni-app”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-app-harmony”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-app-plus”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-components”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-h5”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-quickapp-webview”: “3.0.0-alpha-4010320240415001”,
“vue”: “^3.4.21”,
“vue-i18n”: “^9.1.9”
},
“devDependencies”: {
“@dcloudio/types”: “^3.4.8”,
“@dcloudio/uni-cli-shared”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/uni-stacktracey”: “3.0.0-alpha-4010320240415001”,
“@dcloudio/vite-plugin-uni”: “3.0.0-alpha-4010320240415001”,
“@vue/runtime-core”: “^3.4.21”,
“vite”: “5.2.8”
}
}
注意依赖版本按你实际所需,以上仅是结构的示例
另外:您说的被扫描漏洞是如何扫描的,方便提供下吗?这边复现排查下,谢谢
在处理 uni-app
项目中依赖的漏洞问题时,确保代码的安全性和稳定性至关重要。对于你提到的 file-type
和 jpeg-js
依赖存在的漏洞问题,我们可以通过升级这些依赖到不包含已知漏洞的版本来解决。以下是如何在 uni-app
项目中更新这些依赖的步骤和相关代码示例。
1. 更新 file-type
依赖
首先,检查 package.json
文件中 file-type
的当前版本,然后将其更新到最新版本(假设最新版本已修复漏洞)。
// 在 package.json 中找到 dependencies 或 devDependencies 部分
"dependencies": {
// ...其他依赖
"@dcloudio/uni-mp-weixin": "^x.x.x",
"file-type": "^最新版本号" // 替换为最新安全版本,如 "^16.0.0"(示例版本号)
},
"devDependencies": {
// ...其他依赖(如果 file-type 在这里)
}
然后运行以下命令以更新依赖:
npm update file-type
或者,如果你希望直接安装特定版本:
npm install file-type@最新版本号 --save
2. 更新 jpeg-js
依赖
同样地,检查并更新 jpeg-js
依赖。
// 在 package.json 中找到 dependencies 或 devDependencies 部分
"dependencies": {
// ...其他依赖
"jpeg-js": "^最新版本号" // 替换为最新安全版本,如 "^0.4.3"(示例版本号)
},
"devDependencies": {
// ...其他依赖(如果 jpeg-js 在这里)
}
然后运行以下命令以更新依赖:
npm update jpeg-js
或者,直接安装特定版本:
npm install jpeg-js@最新版本号 --save
3. 验证更新
更新依赖后,确保项目能够正常构建和运行。运行以下命令来构建和预览你的 uni-app
项目:
npm run dev:%PLATFORM% // %PLATFORM% 替换为你的目标平台,如 weixin, h5 等
或者,如果你使用的是 yarn:
yarn add file-type@最新版本号 jpeg-js@最新版本号
yarn dev:%PLATFORM%
注意事项
- 在更新依赖之前,建议查看这些依赖的变更日志(changelog),以确保新版本不会引入不兼容的变更。
- 如果你的项目依赖于特定版本的
file-type
或jpeg-js
,并且新版本中存在不兼容的变更,你可能需要寻找其他解决方案,如使用补丁或等待库的维护者发布修复。
通过上述步骤,你应该能够安全地更新 uni-app
项目中的 file-type
和 jpeg-js
依赖,并解决扫描到的漏洞问题。