Hasty Briefsbeta

双语

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。