核心用法
NPM & Node.js Vulnerability Scanner 是一款轻量级安全检测工具,通过对接 Google OSV (Open Source Vulnerabilities) API,实现对项目依赖的自动化漏洞扫描。
使用流程
1. 准备依赖清单:将 package.json 放入 /packages 目录,或使用 pip freeze > packages.txt 生成 Python 依赖
2. 创建虚拟环境:python3 -m venv .venv 并激活
3. 安装依赖:pip install requests openpyxl
4. 执行扫描:python3 scanner.py npm(支持 npm/python 模式)
5. 获取报告:扫描结果自动输出为 ScanResult.xlsx Excel 文件
显著优点
- 权威数据源:直接对接 Google 维护的 OSV 数据库,覆盖主流开源生态
- 轻量无侵入:纯 Python 实现,无需安装额外安全代理或修改现有项目
- 格式友好:Excel 输出便于安全团队审计、归档和二次分析
- 跨平台支持:同时提供 Linux 和 Windows 的详细部署指引
潜在缺点与局限性
- 范围受限:仅检测 OSV 数据库已收录的 CVE,无法发现零日漏洞或配置类安全问题
- 无修复建议:输出原始 CVE 信息,但不提供自动修复或补丁升级指引
- 依赖本地环境:需手动维护
packages.json或packages.txt的时效性 - 无持续监控:单次扫描模式,缺乏 CI/CD 集成或定时巡检能力
适合人群
- 中小型开发团队的安全合规自查
- 开源贡献者发布前的依赖安全审计
- 个人开发者快速排查项目高危漏洞
常规风险
- API 依赖风险:OSV API 服务中断或限流可能影响扫描可用性
- 误报/漏报:数据库更新延迟可能导致漏检;版本号解析差异可能产生误报
- 数据隐私:依赖清单上传至第三方 API,敏感内部包名存在泄露风险
- 输出文件安全:
ScanResult.xlsx包含完整漏洞细节,需妥善保管避免外泄