过去两年,前端前端圈子经历了一波又一波的生态上供应链攻击。npm 包被挂马、屡遭作者账号被盗、攻击CI 工具被劫持 ,终于甚至连大厂项目也没能幸免。出手 随便举几个例子 : •Qix(资深维护者)账号被钓鱼,前端结果多个热门包被投毒,生态上受影响的屡遭 npm 包周下载量超过 20 亿; •DuckDB 因为钓鱼邮件 ,依赖链直接被篡改; •Nx 项目则栽在 GitHub Actions 的攻击漏洞上,被黑客钻了空子。终于 这些攻击有个共性 :恶意版本上线没多久就会被删掉。出手可问题是前端,模板下载如果你的生态上项目或者自动化脚本第一时间拉了最新版本,那就妥妥成了“小白鼠”。屡遭 说白了:越是“追新”的项目,越容易中招 。 pnpm 终于出手了就在前几天,pnpm 发布了 10.16,带来一个非常实用的新功能 ::minimumReleaseAge,即最小发布时间限制,它允许你为依赖版本设定一个“冷静期”(单位 :分钟)。只有当某个 npm 包的版本发布超过这个时间,pnpm 才会安装。高防服务器 比如: 复制minimum-release-age=2880 # 48小时1.意思就是 :只安装发布时间 ≥ 48 小时的版本。 刚上线的新版本?不好意思,先在外面冷静两天。 它解决了什么问题?说白了,这个机制就是用来防“零小时攻击”的。 黑客最爱玩的套路是:盗号或者钓鱼 ,然后立刻发一个带毒的新版本 。虽然社区和官方通常会在几个小时内下架或修复,亿华云但这段时间就像真空地带——谁更新,谁中招。 有了 minimumReleaseAge |