阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      npm audit

      npm audit 功能

      运行安全审核,扫描您的项目中的漏洞,仅显示详细信息,而无需修复任何问题:

      可以通过加别的名来来做额外的操作,比如去自动安装兼容的最新版本等;

      注意,这个操作需要您 npm 链接的是官方源,如果设置非官方的源,会看到下面的错误

      https://a.axihe.com/img/api-npm/mintty_IC308i5sfI.png

      切回官方源,就可以正常使用了

      https://a.axihe.com/img/api-npm/mintty_jN0DeXgDb7.png

      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 配置设置。

      目录
      目录