yarn audit --groups dependencies --level moderate 是什么?
一条命令、两个参数,让依赖漏洞无处遁形。
命令全貌
bash
yarn audit --groups dependencies --level moderate
Yarn 会分析你的 node_modules,在已知漏洞数据库中比对所有包,然后只输出你真正需要关心的那部分------生产依赖里,危险程度达到"中等"及以上的漏洞。
两个参数各管什么
--groups dependencies
只扫 dependencies,跳过 devDependencies。
打包上线的代码才需要被审计,本地开发工具(如 ESLint、Jest、Webpack)的漏洞不影响线上用户,不必占用排查精力。
--level moderate
过滤掉 low 级别的噪音,只展示 moderate / high / critical 的漏洞,让报告专注在真正有风险的问题上。
漏洞等级一览
| 等级 | 说明 | --level moderate 是否显示 |
|---|---|---|
low |
低危,影响极小 | ✗ 过滤掉 |
moderate |
中危,有一定利用可能 | ✓ |
high |
高危,建议立即修复 | ✓ |
critical |
严重,必须立刻处理 | ✓ |
为什么不扫 devDependencies?
devDependencies 只在开发环境运行,不会进入生产构建产物。攻击者拿不到它们,扫出来的漏洞对用户无实际威胁。
精准扫描 = 更少误报 + 更快 CI。
扫完之后怎么处理?
-
读报告 --- Yarn 列出漏洞名称、受影响的包、CVE 编号,以及是否有修复版本可用。
-
先跑升级 --- 对有新版本的包直接升级:
bash
yarn upgrade <package-name>
- 用 resolutions 强制锁版本 --- 若漏洞在深层传递依赖里,直接升顶层包无效,可在
package.json里强制指定:
json
{
"resolutions": {
"vulnerable-package": "^2.0.0"
}
}
- 无修复版本时评估风险 --- 判断攻击向量是否可达。不可达的漏洞可暂时豁免,等上游发布补丁后跟进。
加进 CI 流水线
bash
# CI 中用 high,避免中等漏洞太多堵死流水线
yarn audit --groups dependencies --level high
# 本地排查用 moderate,做更完整的扫描
yarn audit --groups dependencies --level moderate
把 --level high 版本加到 CI 检查步骤,可以阻止带有高危漏洞的 PR 合入主分支。
背景说明
yarn audit 背后调用的是 npm 公开漏洞数据库(npm Advisory Database),数据与 npm audit 同源,覆盖了 CVE、GitHub Advisory 等主流漏洞来源。