使用 verdaccio-audit 进行 npm 安全审计

阅读时长 4 分钟读完

npm 是前端开发中常用的包管理工具之一,但是在使用过程中可能存在安全风险。为了确保项目依赖的安全性,我们可以使用 verdaccio-audit 进行安全审计。本文将介绍 verdaccio-audit 的使用方法,并提供示例代码。

什么是 verdaccio-audit?

verdaccio-audit 是一个 npm 包,可以与 verdaccio 集成,用于检查项目依赖的漏洞和缺陷。它使用 Node.js 的内置模块 child_process 来运行 npm audit 命令,并对其输出进行解析和分析。如果 verdaccio-audit 检测到依赖项存在安全问题,则会警告开发人员并阻止包的发布。

如何使用 verdaccio-audit?

步骤 1:安装 verdaccio 和 verdaccio-audit

首先,需要安装 verdaccio 和 verdaccio-audit。可以通过以下命令进行安装:

步骤 2:配置 verdaccio

接下来,需要配置 verdaccio。可以创建一个名为 .verdaccio/config.yml 的文件并添加以下内容:

-- -------------------- ---- -------
-----
  ---------
    ----- -----------------  
--------
  ------
    ---- ---------------------------
---------
  -------
    ------- ----
    -------- --------------   
    ---------- -------------- 
    ------ -----
-----
  - ------ ------- ------- ------- ------ -----
------------
  ------
    -------- ----

其中,auth 部分用于配置用户认证方式,可以根据需要进行设置。uplinks 部分用于配置 npm 的 upstream registry,在本例中使用的是官方 registry。packages 部分用于配置包的发布权限和访问控制,可以根据需求进行调整。logs 部分用于配置日志记录方式。最后,middlewares 部分用于启用 verdaccio-audit 中间件。

步骤 3:启动 verdaccio

在完成配置后,可以通过以下命令启动 verdaccio:

步骤 4:测试 verdaccio-audit

现在,可以测试 verdaccio-audit 是否正常工作。可以创建一个名为 test-package 的空包,并将其发布到 verdaccio:

注意,--registry 参数用于指定注册表地址。

接下来,可以运行以下命令检查项目依赖项是否存在安全问题:

如果 verdaccio-audit 工作正常,则应该会收到类似以下的输出:

现在,可以在 package.json 文件中添加一个有漏洞的依赖项,并再次运行 npm audit 命令:

此时,应该会收到类似以下的输出:

-- -------------------- ---- -------
--- --- ----- -------- ------ ---

--------------------------------------------------------------------------------
- -----  - ---- - ------- ---------- ------ -- -------                            -
--------------------------------------------------------------------------------
- -------       - ----                                           -----          -
- ---------- -- - ------------                                  -
- ----          - ------------ - ------------                     -
- ---- ----     - -----------------------

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈