npm 的 audit 命令如何帮助发现安全漏洞?
1. 工作原理
- npm audit 命令将项目的依赖树描述提交到 npm 注册中心,与漏洞数据库进行交叉核对
- 检查范围包括直接依赖、开发依赖、打包依赖与可选依赖,但不检查 peerDependencies
- 自 npm 7 起使用 Bulk Advisory 端点,以更快的速度计算审计结果
2. 报告内容与严重等级
- 报告包含受影响包名、版本范围、漏洞描述、严重程度(low/moderate/high/critical)、修复建议
- 每条漏洞关联 GitHub Advisory Database 中的 CVE 编号与修复版本
- npm audit fix 可自动安装兼容的安全更新,npm audit fix --force 允许跨主版本升级
3. 签名验证
- npm audit signatures 命令可验证下载包的注册中心签名与 Sigstore 来源证明
- 注册中心签名用于确认包在传输过程中未被篡改
- 来源证明(provenance)记录包的构建环境与源代码提交,帮助开发者判断是否可信