npm audit
npm audit 功能
运行安全审核,扫描您的项目中的漏洞,仅显示详细信息,而无需修复任何问题:
可以通过加别的名来来做额外的操作,比如去自动安装兼容的最新版本等;
注意,这个操作需要您 npm 链接的是官方源,如果设置非官方的源,会看到下面的错误
切回官方源,就可以正常使用了
npm audit 使用
npm audit [--json|--parseable|--audit-level=(low|moderate|high|critical)]
npm audit fix [--force|--package-lock-only|--dry-run]
common options: [--production] [--only=(dev|prod)]
npm audit 例子
扫描您的项目中的漏洞,并自动安装兼容的最新版本:
$ npm audit fix
运行时 audit fix 无需修改 node_modules,但仍会更新 pkglock:
$ npm audit fix --package-lock-only
跳过更新 devDependencies:
$ npm audit fix --only=prod
强制修复
已经 audit fix 安装了 semver-major 更新到顶级依赖项,而不仅仅是与 semver 兼容的依赖项:
$ npm audit fix --force
做一个预演
以得到一个什么样的想法 audit fix 就行了,还输出安装在 JSON 格式的信息:
$ npm audit fix --dry-run --json
扫描项目中的漏洞
$ npm audit
获取 JSON 格式的详细审核报告:
$ npm audit --json
以纯文本结果获取详细的审计报告,以制表符分隔,以便将来在脚本或命令行后处理中重用,例如,选择一些打印的列:
$ npm audit --parseable
要解析列,您可以使用例如 awk,仅打印其中的一些:
$ npm audit --parseable | awk -F $'\t' '{print $1,$4}'
仅在结果包含中等或更高级别的漏洞时,审核失败:
$ npm audit --audit-level=moderate
npm audit 命令说明
audit 命令将对项目中配置的依赖项的描述提交给默认注册表,并要求提供已知漏洞的报告。
返回的报告包含有关如何对这些信息采取行动的说明。
如果未发现漏洞,该命令将以 0 退出代码退出。
您还可以让 npm 通过运行来自动修复漏洞 npm audit fix
。
请注意,某些漏洞无法自动修复,需要手动干预或检查。 另请注意,由于
npm audit fix
在后台运行了完整功能npm install
, 因此适用于安装程序的所有配置也将适用于npm install
因此类似的事情npm audit fix --package-lock-only
将按预期工作。
默认情况下,如果发现任何漏洞,audit 命令将以非零代码退出。
在 CI 环境中,包含 --audit-level
参数以指定将导致命令失败的最低漏洞级别可能很有用。
此选项不过滤报告输出,它只是更改命令的失败阈值。
npm audit 显示的内容
npm_version
node_version
平台
node_env
您的 package-lock.json 或 npm-shrinkwrap.json 的净化版本
磨边
为了确保审核数据包中不包含潜在的敏感信息,某些依赖项可能会将其名称(有时是版本)替换为不透明的不可逆标识符。针对以下依赖项类型完成此操作:
- 引用为非默认注册表配置的作用域的任何模块的名称都将被清除。(也就是说,您 npm login –scope=@ourscope 为此做了一个作用域。)
- 所有 git 依赖项的名称和说明符均被清除。
- 所有远程 tarball 依赖项的名称和说明符均被清除。
- 所有本地目录和 tarball 依赖项的名称和说明符均被清除。
不可逆标识符是特定于会话的 UUID 的 sha256,并且将替换该值,以确保有效载荷内的一致值在两次运行之间是不同的。
npm audit 返回结果
npm audit
如果未发现漏洞,该命令将以 0 退出代码退出。
如果发现漏洞,则退出代码将取决于 audit-level
配置设置。