运行npm install出现underscore等包1596个安全漏洞该如何修复?
漏洞修复步骤
1. 优先执行自动修复
运行官方提供的自动修复命令:npm audit fix
该命令会自动将存在可用补丁的依赖升级至兼容的安全版本,可覆盖你列出的绝大多数有官方修复版本的漏洞,包括underscore、hosted-git-info、request、brace-expansion、hoek对应的风险。
2. 自动修复未覆盖的嵌套依赖强制处理
如果执行完npm audit fix后仍有残留漏洞,可使用npm 8.3及以上版本支持的overrides功能强制指定嵌套依赖的安全版本:
在你的项目package.json中新增如下配置:
{ "overrides": { "underscore": ">=1.12.1", "hosted-git-info": ">=3.0.8", "request": ">=2.68.0", "brace-expansion": ">=1.1.7", "hoek": ">=5.0.3" } }
配置完成后重新执行npm install即可生效。
注意:非必要不要使用npm audit fix --force,该命令会强制升级依赖到不兼容的主版本,大概率会导致项目原有功能异常,若必须使用请提前做好代码备份和兼容性测试。
3. 无补丁漏洞的处理方案
你列出的web3低危漏洞目前没有官方修复补丁,可根据你的项目实际情况选择处理方式:
- 若项目未用到web3的私钥存储相关功能,可直接忽略该漏洞,也可执行
npm audit --production跳过开发依赖的漏洞检查,或者将该漏洞加入审计忽略列表。 - 替换依赖:将
@alch/alchemy-web3替换为无该漏洞的同类Web3 SDK,或者直接使用ethers.js代替所有web3相关依赖,从根源上消除风险。 - 若必须保留该依赖,做好敏感信息管控,不要在代码中硬编码私钥、助记词等敏感信息,避免触发漏洞风险。
4. 验证修复结果
所有操作完成后重新执行npm audit,确认漏洞已全部处理完毕。
内容的提问来源于stack exchange,提问作者Chingun Erdene-Ochir
相关产品推荐
相关产品推荐

