全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-25 6 分钟 ✍️ juanwangdev

npm audit安全审计与修复

npm audit检测依赖中的已知漏洞,audit fix自动修复兼容版本内的安全问题。

npm audit安全审计

基本用法

Bash
npm audit

输出漏洞报告,按严重程度分级:

级别含义
critical可被远程执行代码
high可导致数据泄露
moderate可被利用但影响有限
low影响较小

详细信息

Bash
# 查看特定漏洞详情
npm audit --json

# 仅显示特定级别以上
npm audit --audit-level=high

输出示例

text
# Run `npm audit` for details.
lodash  4.17.20
Severity: high
Prototype Pollution - https://npmjs.com/advisories/xxx
fix available via `npm audit fix`
node_modules/lodash
  my-app  *  depends on lodash@^4.17.20

在CI中使用

Bash
# CI中发现high以上漏洞时构建失败
npm audit --audit-level=high
YAML
# GitHub Actions
- run: npm audit --audit-level=high

npm audit依赖npm官方漏洞数据库。私有包和未注册的依赖不会被检测。

npm audit fix自动修复

基本用法

Bash
npm audit fix

自动将存在漏洞的依赖升级到修复版本(在semver兼容范围内)。

强制修复

Bash
npm audit fix --force

允许跨大版本升级,可能引入Breaking Changes。

仅修复特定漏洞

Bash
# 查看可修复的漏洞
npm audit

# 手动安装修复版本
npm install lodash@4.17.21

无法自动修复的情况

  • 传递依赖漏洞,且顶层依赖未发布修复版本
  • 修复版本超出semver范围
  • 漏洞无已知修复版本
text
2 vulnerabilities required manual review

npm audit fix --force有风险,可能破坏依赖兼容性。生产项目慎用,优先手动升级并测试。

要点总结

  • npm audit扫描依赖树中的已知漏洞,按严重程度分级
  • --audit-level可在CI中设置漏洞阈值,超限则构建失败
  • npm audit fix在semver范围内自动升级到修复版本
  • --force允许跨大版本修复,有Breaking Changes风险
  • 无法自动修复的漏洞需手动处理或使用overrides覆盖
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 exports条件导出与TS支持
下一篇 → 深层漏洞处理策略
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码