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 最终会添加类似的功能,但这似乎短期内不会实现,因此我制作了这个小型包。
相似文章
NPM v12 即将到来的破坏性变更
npm v12 对 npm install 引入了安全相关的破坏性变更,默认禁用脚本、git 依赖和远程 URL 依赖的自动执行。用户可以通过升级到 npm 11.16.0+ 并查看警告信息来提前准备,显式选择信任行为。
npm 的分阶段发布和新的安装时控制
npm 引入了分阶段发布,要求通过双因素认证(2FA)进行人工审批才能发布包,并新增了 `--allow-*` 标志(file、remote、directory)来控制安装源,从而提高了 npm CLI 11.15.0 的供应链安全性。
@RhysSullivan: 刚刚在我机器上启用了 npm 包安装的最小年龄限制,早就该这么做了,如果你还没做的话……
一位开发者分享了一个技巧,为包安装配置最小发布年龄以缓解供应链攻击。
@DeRonin_: 使用本指南保护你的计算机免受 NPM 攻击,这些攻击会在一次安装中窃取一切。TanStack,一个代码库使用……
本文详细介绍了针对 NPM 上 TanStack 库的供应链攻击,并提供了一份全面的指南,通过锁定依赖项发布年龄、固定版本以及对 CI/CD 流水线和 IDE 扩展进行审计,来保护开发环境的安全。
人人都该从 npmx 偷学的功能
npmx 是一个 MIT 授权的 npm 仓库替代前端,它在安全与可用性上做了增强:展示传递式安装体积、暴露安装脚本、可视化过期/含漏洞依赖树,还逼得 npmjs.com 终于上线了深色模式。