开源最大反噬!Faker.js 作者怒删库,无数 500 强企业集体翻车
乐玩体育带来本期体育资讯:
如果你以为开源世界都是岁月静好、技术大神无私奉献的童话,那你可能没听说过 Marak Squires 这号人。
2022 年 1 月,这位程序员做了一件让整个开源圈炸锅的事: 他把自己维护了多年的 Faker.
js 项目代码全部清空,还往里面塞了恶意代码。
结果呢?
数千个依赖 Faker.
js 的应用当场崩溃,输出乱码。
其中不乏《财富》500 强公司用的系统。
先科普一下 Faker.
js 是什么: 一个 Node.
js 工具库,能生成各种模拟数据——假名字、假地址、假电话、假邮件,开发测试的时候用来填充数据非常方便。
周下载量超过 200 万次,全球数百家公司都在用。
他不是突然发疯,是积怨已久 外人看起来是"程序员发疯删库",但翻一下 Marak 的过往发言,你会发现这件事一点都不突然。
2020 年 10 月 Marak 公开发帖: "我受够了维护 Faker.
js。
" 语气里满满都是倦怠。
2021 年底 他在代码提交里丢下一句话: "我不会再为财富 500 强公司提供免费支持。
" 火药味已经很明显了。
2022 年 1 月初 动手了。
仓库代码清空,README 只剩一句"What really happened with Aaron Swartz?
"。
还注入了死循环代码,依赖他的项目全部遭殃。
他是怎么做到的?
手法很聪明: 把真正的仓库设为私有,改了名字新建同名仓库,commit 只有一条Star 数远少于原本的仓库 所以那天打开 GitHub 看到 Faker.
js 的页面,一眼看过去还以为是这个项目刚起步——明明 8 千星的仓库,突然只剩几十颗星,代码也只有一条 commit。
更狠的是, npm 上保留着历史版本下载 ,周下载量依然 200 万+。
很多人根本没意识到,自己项目引用的这个库,作者已经"叛变"了。
他为什么这么做?
Reddit 上讨论这件事的帖子,核心原因指向两点: ① 钱的问题。
维护一个被数百家公司免费使用的开源项目,Marak 不仅拿不到任何报酬,连基本的捐赠都少得可怜。
而用着 Faker.
js 的大公司,出了 bug 第一个跳出来指责作者。
② 被当免费劳动力。
"我给你免费用,你用坏了跑来骂我?
"——这种不对等的关系,在开源圈一点都不新鲜。
Marak 只是用最极端的方式,把这个潜规则捅破了。
这里插一句背景:Marak 不是一个孤例。
在他之前,left-pad 的作者 Azer Koçulu 也曾因为一个 npm 命名纠纷,一怒之下撤下了所有模块,导致大半个互联网的构建失败。
历史不会重复,但开源圈的这种悲剧, 每隔几年就会重演一遍 。
作者出局,八人团队接管 事情发生后,开源社区没有坐等。
一个由 8 名来自不同背景和公司的工程师 组成的团队站了出来,创建了新组织 faker-js/faker ,接手了 Faker.
js 的维护工作。
新项目:faker-js/faker GitHub:github.
com/faker-js/faker 文档站:fakerjs.
dev Twitter:@faker_js 他们上来就干了一堆活: 在 npm 发布了所有历史版本,保证老项目不受影响 基本完成了向 TypeScript 的迁移 上线了官方文档网站——在此之前 Faker.
js 从未有过官方文档 创建了 Twitter 帐号用于社区交流 清理 CI、Prettier、GitHub Actions 等工程化设施 ✅大量 issue 分类和 PR review 与 Open Collective 协商资金过渡(约 1.
16 万美元转入新账户) 这件事暴露了什么?
Faker.
js 事件不是你看到的又一个"程序员删库"的瓜。
它捅破的是开源世界的一层窗户纸: 被打破的旧规则 开源 = 免费劳动力 大公司白嫖是天经地义 出了问题问责作者 一个人扛起一个生态 事件催生的新现实 社区可以接管,没人不可替代 多人维护 > 单人维护 开源需要可持续的资金支持 商业公司没有白嫖的权利 说白了,核心矛盾就一句话: 一旦开源代码被广泛采用,谁为它负责?
是那个连房租都快付不起的作者?
还是每年赚几亿却一分不捐的使用者?
还是自发组织的社区维护团队?
这个问题的答案,现在还没有定论。
但 Faker.
js 事件至少让很多人意识到: 免费的背后,有人在默默承担代价。
特别
乐玩体育将持续关注后续动态。