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 從公開儲存庫中收錄這些內容。

檢舉或申請下架