无需登录 数据私有 本地保存

NPM 审计结果可视化 - 解析 JSON 报告

40
0
0
0

NPM Audit 报告可视化

粘贴 npm audit --json 输出
0
严重 Critical
0
高危 High
0
中等 Moderate
0
低危 Low
0
信息 Info
0
总计 Total
严重程度分布 0 个漏洞
显示 0 项

没有匹配的漏洞

🎉 未发现已知漏洞!

该项目依赖项均未发现已知安全漏洞。

粘贴或上传 npm audit --json 的报告来可视化分析

运行命令:npm audit --json > audit-report.json

常见问题

npm audit 是 npm 内置的安全审计工具,它会扫描项目的 package.jsonpackage-lock.json,将依赖树与 npm 官方安全漏洞数据库进行比对。当发现已知漏洞时,它会生成详细报告,包括漏洞严重程度(Critical/High/Moderate/Low)、受影响的包、漏洞描述、CVE编号以及修复建议。它是前端和Node.js项目安全防护的第一道防线。

在项目根目录下运行以下命令即可生成 JSON 格式的审计报告:
npm audit --json > audit-report.json
或者直接输出到终端:npm audit --json,然后将输出内容复制粘贴到本工具的输入框中。生成的 JSON 文件可用于CI/CD流程中的自动化安全分析。

npm 采用 CVSS(通用漏洞评分系统)来评估漏洞严重程度:
Critical(严重):CVSS 9.0-10.0,可直接导致系统被完全入侵,如远程代码执行。
High(高危):CVSS 7.0-8.9,可能导致数据泄露、权限提升等严重后果。
Moderate(中等):CVSS 4.0-6.9,如拒绝服务攻击、信息泄露等。
Low(低危):CVSS 0.1-3.9,影响较小,利用难度较高。
Info(信息):仅供参考的安全建议,不构成直接威胁。建议优先修复 Critical 和 High 级别的漏洞。

直接依赖是你在 package.json 中显式声明的包,它们的漏洞通常更容易修复——你只需更新该包的版本即可。
间接依赖(传递依赖)是你直接依赖的包所依赖的其他包,它们位于依赖树的更深层。这类漏洞更隐蔽,修复也更复杂——可能需要等待上游包更新其依赖,或使用 overrides/resolutions 字段强制指定版本。
两种类型都应重视,但间接依赖的漏洞往往更容易被忽略,需要特别关注。

npm audit fix 会自动将依赖更新到包含安全修复的版本,但它有局限性:
可自动修复:当存在兼容的修复版本且不违反语义化版本范围时。
需要手动修复npm audit fix --force):修复版本涉及主版本更新(semver-major),可能引入破坏性变更。
无法修复:当漏洞存在于已废弃的包、暂无修复版本的包,或修复版本与你项目的Node.js版本不兼容时。此时建议寻找替代包或评估风险后使用 .nsprc 文件忽略特定漏洞。

CVE(Common Vulnerabilities and Exposures)是全球通用的安全漏洞标识符,格式为 CVE-YYYY-NNNNN。通过CVE编号可以在 NVD数据库 中查询漏洞的详细信息。
via 字段描述了漏洞的传播路径——即漏洞是通过哪个依赖链引入的。它可能是一个包名(字符串)或一个包含详细信息的对象(含漏洞标题、URL、CVSS评分等)。理解via字段有助于定位漏洞的根因,判断是否可以通过更新上游依赖来修复。

在CI/CD中集成npm audit的最佳实践:
1. 在构建流程中添加 npm audit --audit-level=high,当存在high或critical漏洞时使构建失败。
2. 使用 npm audit --json 生成JSON报告并归档为构建产物。
3. 结合本工具或其他可视化工具分析趋势。
4. 设置定期审计任务(如每周自动运行审计并发送通知)。
5. 对于无法立即修复的漏洞,使用 .nsprc 文件记录豁免原因和负责人,避免技术债务累积。

npm audit:npm内置,免费,基于npm官方漏洞数据库,适合快速本地审计。
Snyk:第三方商业工具,漏洞数据库更全面(包含非npm源),提供更丰富的修复建议和优先级评分。
Dependabot:GitHub内置,自动提交依赖更新PR,适合托管在GitHub的项目。
建议组合使用:日常开发用npm audit快速检查,CI/CD中用Dependabot自动更新,关键项目辅以Snyk深度扫描。三者互补而非替代关系。