Show HN: Safe-install – 通过可信构建依赖实现更安全的 NPM 安装
摘要
介绍了一个名为 safe-install 的新 npm 包,旨在通过允许开发者默认禁用安装脚本并屏蔽异类子依赖来增强供应链安全,从而应对持续存在的安全漏洞。
鉴于 npm 供应链持续遭受入侵,我构建了 safe-install:
<p><a href="https://www.npmjs.com/package/@gkiely/safe-install" rel="nofollow">https://www.npmjs.com/package/@gkiely/safe-install</a>
它提供了几项我希望 npm 内置但未实现的保护机制。
类似于 Bun 的可信依赖功能,它允许你默认禁用安装脚本,并定义一个允许运行构建/安装脚本的依赖列表:
<p><a href="https://bun.com/docs/guides/install/trusted" rel="nofollow">https://bun.com/docs/guides/install/trusted</a>
它还支持屏蔽异类子依赖,类似于 pnpm 的 `blockExoticSubdeps` 设置:
<p><a href="https://gajus.com/blog/3-pnpm-settings-to-protect-yourself-from-supply-chain-attacks#2-set-blockexoticsubdeps" rel="nofollow">https://gajus.com/blog/3-pnpm-settings-to-protect-yourself-f...</a>
我曾希望 npm 最终会添加类似的功能,但这似乎短期内不会实现,因此我制作了这个小型包。
相似文章
@RhysSullivan: 刚刚在我机器上启用了 npm 包安装的最小年龄限制,早就该这么做了,如果你还没做的话……
一位开发者分享了一个技巧,为包安装配置最小发布年龄以缓解供应链攻击。
@DeRonin_: 使用本指南保护你的计算机免受 NPM 攻击,这些攻击会在一次安装中窃取一切。TanStack,一个代码库使用……
本文详细介绍了针对 NPM 上 TanStack 库的供应链攻击,并提供了一份全面的指南,通过锁定依赖项发布年龄、固定版本以及对 CI/CD 流水线和 IDE 扩展进行审计,来保护开发环境的安全。
人人都该从 npmx 偷学的功能
npmx 是一个 MIT 授权的 npm 仓库替代前端,它在安全与可用性上做了增强:展示传递式安装体积、暴露安装脚本、可视化过期/含漏洞依赖树,还逼得 npmjs.com 终于上线了深色模式。
@tan_stack: 安全公告 —— TanStack npm 包遭遇供应链攻击,影响 42 个 @tanstack/* 包(共 84 个版本……
一次高危供应链攻击影响了 42 个 TanStack npm 包,导致云凭证和 SSH 密钥被窃取。建议用户在攻击时间窗口内安装过相关包的,立即轮换凭证并从干净的 lockfile 重新安装。
@bcherny: 猜测你正在查看仅基于 npm 的数据。我们在几个月前切换到了原生安装程序,因此大部分安装…
Anthropic 的一名开发者纠正了 Andreessen Horowitz 对 Claude Code 的使用指标,指出由于切换至原生安装程序,npm 数据低估了实际采用情况,且近期的注册日显示出显著增长。