Show HN: Safe-NPM – only install packages that are +90 days old
3 months ago
- #npm
- #security
- #supply-chain
- safe-npm 是一个注重安全的 npm 安装工具,它通过仅安装已公开发布至少90天(默认值)的软件包版本来保护项目免受被篡改软件包的影响。
- 该工具通过过滤掉新发布的版本来缓解供应链攻击,为安全社区留出检测恶意更新的时间。
- 主要功能包括:
- - 软件包版本的最低存在时长门槛(可通过 --min-age-days 配置)
- - 可为受信任软件包绕过年龄要求(--ignore)
- - 严格模式:若依赖项不符合年龄要求则终止安装(--strict)
- - 控制依赖类型的选项(--dev, --prod-only)
- - 预安装模拟模式(--dry-run)
- 安装方式:
- - 通过 npm install -g @dendronhq/safe-npm 全局安装
- - 直接使用 safe-npm install 命令
- - 克隆仓库并链接二进制文件的本地开发设置
- 适用场景:
- - 需要最高安全级别的关键生产系统(可设置更高年龄阈值)
- - 具有严格依赖要求的 CI/CD 流水线
- - 需要较新功能但可接受略高风险的项目(设置较低年龄阈值)
- 局限性:
- - 无法防范初始即恶意的软件包
- - 会延迟获取合法更新
- - 需信任旧版本的安全性
- 安全建议:
- - 结合定期安全审计(npm audit)
- - 添加依赖前进行审查
- - 监控安全公告
- - 使用锁文件确保构建可复现
- - 在沙箱环境中运行
- 系统要求:Node.js 18+ 和 npm。