删库一时爽,后悔没商量!
2022 年伊始,开源届炸开了锅,这边还在费尽心思尝试各种检测与修复方法减少 Log4j 2 漏洞带来的辐射;另一边却陡然发现,数千个开源库满屏乱码,无数程序员一觉睡醒后陷入沉思。
在寻找根源时发现,这些错乱的开源库有一个共同特点,就是使用了开源的 NPM 包 faker.js 和 colors.js,继续深挖后,让人十分诧异的是,导致重大 Bug 的背后是这两个流行的开源库被其作者 Marak Squires 删掉了源代码。
所谓“冲动是魔鬼”,就在Marak对faker.js 和 colors.js 两个项目进行一系列注入恶意代码、删库等魔幻操作之后,作为代码托管平台 GitHub 为了维护“和平与正义”,直接封掉了Marak的账号。
然而,事情并没有结束,时隔十天后,Marak 似有些心酸也颇有后悔之意地询问起 GitHub:
@GitHub,这是怎么回事?十天前,你取消了我发布到 NPM 并修复 colors.js 中的 Infinity Zalgo bug 的能力。
从未回复我的支持电子邮件。
我有 100 多个需要维护的软件包。
每个人都会不时犯下「编程错误」。
没有人是完美的。
冲动的根源
Marak的言下之意也并不难理解,“你封了我十天了,我还有好多项目要维护,希望能给我解封一下。”但是对于 Marak 将有意损坏“faker.js”和“colors.js”两个开源库的行为归纳为「编程错误」这一说法,很多开发者直言不可原谅,更不用说这一态度可以让 GitHub 会去回复他的邮件了。
毕竟,Marak 一时的冲动的后果不仅是让很多项目受到时间、成本损失,也间接地劝退不少想要进入开源领域的爱好者们。
回看事情经过,还是得从color.js 和faker.js 两个项目谈起。
在包管理器 NPM 上,colors 每周下载量超过 200