faker|拒绝白嫖,开源项目作者删库跑路,数千个应用程序无限输出乱码

机器之心报道
编辑:蛋酱、小舟

「我删我自己的开源项目代码 , 需要经过别人允许吗?」
几天前 , 开源库「faker.js」和「colors.js」的用户打开电脑 , 发现自己的应用程序正在输出乱码数据 , 那一刻 , 他们惊呆了 。
更令人震惊的是 , 开发者们发现 , 造成这一混乱局面的就是「faker.js」和「colors.js」的作者 Marak Squires 本人 。
一夜之间 , Marak Squires 主动删除了「faker.js」和「colors.js」项目仓库的所有代码 , 让正在使用这两个开源项目的数千位开发者直接崩溃 。
「faker.js」和「colors.js」
faker.js 在 npm 上的每周下载量接近 250 万 , color.js 每周的下载量约为 2240 万 , 本次删库的影响是极其严重的 , 使用这两个项目开发的工具包括 AWS CDK 等 。
如果在构建和测试应用时 , 真实的数据量远远不够 , 那么 Faker 类工具将帮助开发者生成伪数据 。 faker.js 就是可为多个领域生成伪数据的 Node.js 库 , 包括地址、商业、公司、日期、财务、图像、随机数、名称等 。
faker|拒绝白嫖,开源项目作者删库跑路,数千个应用程序无限输出乱码
文章图片

faker.js 支持生成英文、中文等多语种信息 , 包含丰富的 API , 此前版本通常一个月迭代更新一次 。 faker.js 不仅可以使用在服务器端的 JavaScript , 还可以应用在浏览器端的 JavaScript 。
现在 , faker.js 项目的所有 commit 信息都被改为「endgame」 , 在 README 中 , 作者写下这样一句话:「What really happened with Aaron Swartz?」
faker|拒绝白嫖,开源项目作者删库跑路,数千个应用程序无限输出乱码
文章图片

Swartz 是一位杰出的开发人员 , 帮助建立了 Creative Commons、RSS 和 Reddit 。 2011 年 , Swartz 被指控从学术数据库 JSTOR 中窃取文件 , 目的是免费访问这些文件 。 Swartz 在 2013 年自杀 , Squires 提到 Swartz 可能意指围绕这一死亡疑云 。
Marak Squires 向 colors.js 提交了恶意代码 , 添加了一个「a new American flag module」 , 然后将其发布到了 GitHub 和 npm 。
faker|拒绝白嫖,开源项目作者删库跑路,数千个应用程序无限输出乱码
文章图片

随后他在 GitHub 和 npm 发布了 faker.js 6.6.6 , 这两个动作引发了同样的破坏性事件 。 破坏后的版本导致应用程序无限输出奇怪的字母和符号 , 从三行写着「LIBERTY LIBERTY LIBERTY」的文本开始 , 后面跟着一系列非 ASCII 字符:
faker|拒绝白嫖,开源项目作者删库跑路,数千个应用程序无限输出乱码
文章图片

目前 , color.js 已经更新了一个可以使用的版本 。 faker.js 项目尚未恢复 , 开发者只能通过降级到此前的 5.5.3 版本来解决问题 。

推荐阅读