EDITORIAL / FEATURED STORY

开源最大反噬!Faker.js 作者怒删库,无数 500 强企业集体翻车

如果你以为开源世界都是岁月静好、技术大神无私奉献的童话,那你可能没听说过 Marak Squires 这号人。 2022 年 1 月,这位程序员做了一件让整个开源圈炸锅的事: 他把自己维护了多年的 Faker.js 项目代码全部清空,还往里面塞了恶意代码。 结果呢?数千个依赖 Faker.js 的应用当场崩溃,输出乱码。其中不乏《财富》500 强公司用的系统。 先科普一下 Faker.js 是什么

ARTICLE /768
开源最大反噬!Faker.js 作者怒删库,无数 500 强企业集体翻车
SCROLL TO READ

开源最大反噬!Faker.js 作者怒删库,无数 500 强企业集体翻车

“

如果你以为开源世界都是岁月静好、技术大神无私奉献的童话,那你可能没听说过 Marak Squires 这号人。 2022 年 1 月,这位程序员做了一件让整个开源圈炸锅的事: 他把自己维护了多年的 Faker.js 项目代码全部清空,还往里面塞了恶意代码。 结果呢?数千个依赖 Faker.js 的应用当场崩溃,输出乱码。其中不乏《财富》500 强公司用的系统。 先科普一下 Faker.js 是什么

本文由亚星娱乐整理发布:

如果你以为开源世界都是岁月静好、技术大神无私奉献的童话,那你可能没听说过 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.

about image

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 事件至少让很多人意识到: 免费的背后,有人在默默承担代价。

特别

关注亚星娱乐,掌握更多体坛动态。

觉得有用?分享给朋友

让更多人看到这篇内容

KEEP READING / 04

推荐阅读

查看全部