javascript - npm - 如何将传递依赖项升级到特定的较新版本?(为了修复 cve)
问题描述
以下是我需要升级的软件包。
我试图更新以下包中version
的.signature
package-lock.json
一旦我npm i
修改后package-lock.json
,所做的更改就会 package-lock.json
消失。
截至今天,xmldom
npm 包无法升级到0.7.0,因为维护者在将0.7.0版本推送到 npm 注册表时遇到了一些问题
我已经尝试了其他 stackoverflow 帖子中提到的答案,但即使报告的问题相同,它似乎也无法解决我的问题。
如果有任何标准方法可以解决这个问题,请分享。
请建议如何解决这个问题
包.json
{
"name": "qabot",
"version": "1.0.0",
"description": "",
"main": "index.slack.js",
"nodemonConfig": {
"ignore": [
"config/*",
"tempdirectory/*"
]
},
"engines": {
"node": "12.18.4"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@slack/bolt": "^3.2.0",
"axios": "^0.21.1",
"botbuilder": "^4.12.0",
"convert-excel-to-json": "^1.7.0",
"express": "^4.17.1",
"node-vault": "^0.9.22",
"node-vault-client": "^0.5.6",
"qs": "^6.10.1"
}
}
解决方案
有很多选择。我要做的第一件事是确定这些警告中的任何一个是否相关。
在您的情况下,xmldom
依赖项本身adal-node
就是“用于 node.js 应用程序对 AAD 进行身份验证以访问 AAD 受保护的 Web 资源”的依赖项。如果你没有像那样远程做任何事情,那么你很可能不需要太担心它。(如果您愿意,您也可以采取额外的步骤,例如删除node_modules/xmldom
或替换为 0.7.0。)
其他两个漏洞依赖于convert-excel-to-json
.
一个是yargs-parser
命令行参数解析器。如果您没有使用命令行convert-excel-to-json
,或者不允许用户影响传递给 CLI 的参数,那么您可能不会受到该参数的影响。
最后一个是拒绝服务xlsx
。这是您在convert-excel-to-json
直接使用模块时可能使用的依赖项。(如果不是,npm uninstall convert-excel-to-json
请解决。)如果您可以控制 .xlsx 文件的内容(并且用户无法影响内容),那么您可能不会受到攻击。根据用例,您还可以决定不担心拒绝服务。(如果机器人或您正在构建的任何东西只有一两个用户,并且是您和您的朋友或其他任何人,那么你们俩都不太可能故意拒绝自己的服务。)
如果其中任何一项确实影响了您并且对您来说是重大问题,那么您可以尝试很多事情:
- 检查相关问题跟踪器以查看是否正在修复。
- 手动将依赖项更新到所谓的不兼容版本(但前提是您有良好的测试覆盖率)。
- 寻找替代依赖项。
- fork 现有的依赖项并使用您的 fork。
- 我现在没有想到的其他选项,其中许多可能比上述所有选项都好。
推荐阅读
- html - 为什么我的输入元素比其他元素宽,即使我已经应用了“box-sizing:border-box”?
- r - 从 geom_density() 获取计数
- c# - 如何在 .net core 3.1 的请求正文中收到大 JSON 时修复 System.OutOfMemoryException
- node.js - Firebase 云功能创建 csv 文件到 Storage Cloud?
- magento2 - 在产品详细信息视图 Magento 2.4 中检索可销售数量值并有条件地显示文本
- draftjs - 如何在 Draftjs 编辑器中的图像上添加锚标记
- java - 无法模拟 WebConfig 扩展 WebSecurityConfigurerAdapter
- c# - 将带有嵌入图像的 Outlook Mailitem 保存为邮件的一部分
- php - 我如何将访问者重定向到不同的不同网址,例如每 10 分钟或 15 分钟后说一次,反之亦然?
- powershell - 完成后Powershell更改背景颜色