Agent Skills
返回列表
💻

NPM 包审计器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/npm-package-auditor-registry-api。

技能介绍

解决什么问题

当你的项目依赖几十个甚至几百个 NPM 包时,回答「这些包里有没有已知漏洞」并不是一件容易的事。漏洞信息散落在 GitHub Advisory、npm advisory 数据库和各类 CVE 公告中,靠人工逐一比对既慢又容易遗漏。另一个容易被忽视的风险是许可证:某个传递依赖(transitive dependency)可能采用与项目许可证冲突的协议,直到合规审查或发布前才被发现。

这个技能把两件事自动化:漏洞扫描与许可证合规检查。

核心能力与工作方式

它直接调用 NPM Registry API 解析包的依赖树,而不是只扫描顶层 package.json 中声明的几个依赖。这意味着传递依赖也会进入审计范围。拿到完整依赖清单后,漏洞数据来自 OSV.dev API——OSV 聚合了多个来源的安全公告,可以按包名和版本号进行查询。

具体流程大致是:

  • 解析目标包及其完整依赖树,得到 name@version 形式的依赖清单
  • 将每个依赖提交给 OSV.dev 查询已知漏洞
  • 对命中项输出漏洞详情,包括影响的版本范围和修复建议
  • 生成 CycloneDX 格式的 SBOM(软件物料清单),方便接入后续的供应链安全流程
  • 使用 SPDX 表达式解析器检查每个依赖的许可证,与 SPDX 许可列表比对,标记出许可证冲突或不被允许的组件

适用边界与注意点

这个工具适合作为 CI 或发布前的一个检查环节,而不是替代完整的供应链安全实践。有几点需要留意:

  • 它扫描的是已发布到 Registry 的版本,锁文件与实际安装产物是否一致,取决于解析时依赖树的准确性
  • OSV 数据覆盖公开披露的漏洞,未公开或 0-day 问题不在其范围内
  • 许可证检查基于 SPDX 表达式匹配,遇到自定义许可证或未列入 SPDX 列表的协议时,需要人工确认
  • 如果项目中包含 scoped 私有包或私有 registry 模块,需要确保运行环境已配置好对应的 registry 认证信息
  • 使用前需要本地有可用的 Node.js 与 npm 环境

使用场景

  • CI流水线提交代码时,扫描当前NPM依赖树的已知漏洞
  • 发布npm包前,检查所有依赖的许可证是否与项目兼容
  • 团队需要生成CycloneDX格式的软件物料清单用于安全审计
  • 收到漏洞报告后,排查传递依赖是否存在受影响的版本

适合人员

  • Node.js项目开发者,想在CI流程里自动扫描依赖漏洞
  • 开源库维护者,需要检查每个版本依赖的许可证合规性
  • DevOps工程师,负责为安全团队生成标准化的SBOM文档
  • 全栈开发者,想在升级依赖前排查传递依赖的安全风险