Dependency Audit

wu529778790/shenzjd-skills/dependency-audit

作者 wu52977879091d81223806690723b86b0cc06dc65a29568c1ad无许可证收录于 2026年10月9日更新于 2026年10月9日

Use when auditing project dependencies for security vulnerabilities, outdated packages, or license compliance across npm/yarn/pnpm, pip, go, and cargo.

仅含说明Security
AI 生成的概览

审计项目依赖,检测 npm、yarn、pnpm、pip、Go 和 Cargo 的漏洞、过时包与许可证合规问题。

功能
该技能引导智能体完成依赖审计:根据锁文件识别包管理器,执行漏洞扫描,检测过时依赖,并检查许可证合规性。它使用内置报告模板,输出按严重程度排序的安全报告,包含 CVE 列表、升级分布、风险许可证以及可执行的修复命令。覆盖 npm、yarn、pnpm、Go、Python 和 Rust 项目。
适用场景
当用户想检查依赖安全、提到 CVE、漏洞或审计、询问过时依赖,或调用 dependency-audit 命令时使用。不适用于仅更新版本、代码级安全审查、运行时依赖分析、深度许可证分析或扫描 Docker 镜像。
运行要求
仅包含指令,不附带脚本。依赖外部审计工具,可能需要安装或网络访问:npm/yarn/pnpm audit、govulncheck、pip-audit、npm-check-updates、license-checker 和 go-licenses,以及用于解析 npm audit JSON 输出的 jq。

Dependency Audit

扫描项目依赖,检测安全漏洞、过时包和 license 合规问题。

Overview

全面审计项目依赖:CVE 漏洞扫描、过时依赖检测、license 合规检查、重复依赖分析。输出按严重程度排序的安全报告和可执行的修复命令。

When to Use

  • User wants to check dependency security
  • User mentions CVE, vulnerability, or audit
  • User wants to know outdated dependencies
  • User says "审计依赖" / "check dependencies"
  • User inputs /dependency-audit

When NOT to Use:

  • User only wants to update versions
  • User wants code-level security review
  • User wants to analyze runtime dependencies
  • User wants deep license analysis
  • User wants to scan Docker images

Core Pattern

Step 1: 检测包管理器

检测文件包管理器审计命令
package-lock.jsonnpmnpm audit
yarn.lockyarnyarn audit
pnpm-lock.yamlpnpmpnpm audit
go.sumGogovulncheck ./...
requirements.txt / Pipfile.lockPythonpip-audit
Cargo.lockRustcargo audit

Step 2: 漏洞扫描

bash
# 工具可用性检查(所有步骤共用)check_tool() {  command -v "$1" >/dev/null 2>&1 || { echo "⚠️ $1 未安装,跳过 $2 审计"; return 1; }}

核心命令(按包管理器分别执行,缺失工具自动跳过):

⚠️ npm audit 在发现漏洞时退出码非 0 —— 不要用 if npm audit ...; then 判断成功,直接解析 --json 输出:

包管理器审计命令
npmnpm audit --json | jq '.metadata.vulnerabilities.total' → 解析 vulnerabilities 数量 + 严重程度(勿依赖退出码)
Gogovulncheck ./... → 安装 golang.org/x/vuln/cmd/govulncheck@latest
Pythonpip-audit → 安装: pip install pip-audit

输出:漏洞总数 + 按严重程度(critical/high/medium/low)分类的 CVE 列表。

Step 3: 过时依赖检测

核心命令(按包管理器分别执行,缺失工具自动跳过):

包管理器检测命令
npmnpx npm-check-updates --format table
Gogo list -m -u all | grep "\["
Pythonpip list --outdated

统计:过时依赖数量、major/minor/patch 升级分布、是否有安全相关更新。

Step 4: License 合规检查

核心命令(按包管理器分别执行):

包管理器检测命令
npmnpx license-checker --json → 按许可证类型统计数量
Gogo-licenses csv ./... → 安装: go install github.com/google/go-licenses@latest

检测重点:GPL/AGPL 等 copyleft 许可证、未知/自定义许可证、许可证兼容性。

Step 5: 生成报告

使用 templates/audit-report.md 模板,输出:

  1. 安全概览 — 漏洞数量和严重程度分布
  2. 高危漏洞 — 需要立即修复的 CVE
  3. 过时依赖 — 按升级难度排序
  4. License 合规 — 风险许可证列表
  5. 修复命令 — 每个问题附带可执行命令

Quick Reference

bash
/dependency-audit                    # 完整审计/dependency-audit --security         # 只检查安全漏洞/dependency-audit --licenses         # 只检查 license/dependency-audit --fix              # 自动修复可安全升级的依赖
参数说明默认值
--security只检查安全漏洞false
--licenses只检查 license 合规false
--fix自动修复false

Common Mistakes

错误正确做法原因
只看 high/criticalmedium 也需要关注很多攻击链从 medium 升级而来
盲目升级所有依赖逐个升级并测试major 升级可能有 breaking changes
不检查 transitive 依赖分析完整依赖树漏洞常出在间接依赖中
忽略 license 合规定期检查 licenseGPL 传染性风险
audit 后不更新 lock 文件重新生成 lock 文件确保修复生效
忽略已弃用的依赖检查弃用警告弃用包可能有安全风险

来源与署名

来源:wu529778790/shenzjd-skills位于dependency-audit提交91d8122

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架