拒绝白嫖,著名开源项目作者暴力删库,导致账号被封
yuyutoo 2024-10-15 16:52 5 浏览 0 评论
大家好,最近几天,GitHub 上又发生一件大事!
事情起因,是「faker.js」作者 Marak Squires 因不满各大互联网公司白嫖其项目且未做贡献。
一怒之下,把「faker.js」的代码全部删除,导致一大波公司不能使用。还因疑似向自己开源项目提交恶意代码,使得 GitHub 账户被暂停使用,从而在技术圈引发热议。
欲了解此事的来龙去脉,我们需要先知道什么是「fake.js」。
fake.js 是 GitHub 上一个知名的 Node.js 开源库,其主要作用,是能快速为项目生成可用于测试的假数据,包括用户名、密码、邮件、日期、地址、文章等内容。
GitHub:https://github.com/Marak/faker.js
在实际开发过程中,使用批量生成的假数据进行测试,可快速验证前端页面的排版布局是否合理,以及提前检测某些边缘条件下才会触发的 Bug。
一般来说,后端开发都会提供可用于生成假数据的开源库,比如 Java 的 Java-Faker,Python 的 Faker 等等。
一些比较成熟的后端开发框架,也会通过脚手架或 Factory 模式,快速为项目生成假数据。
而 fake.js,便是在 Node.js 开发领域中,被应用最为广泛的第三方假数据生成库,每周在 npm 上的下载量高达 250w。
5 天前,Marak Squires 对 fake.js 进行了最后一次代码提交,提交信息写的是「endgame」(结束游戏)。
但最耐人寻味的,是他在 README 与项目简介中写下的「What really happened with Aaron Swartz?」一言。
翻译成中文,即「Aaron Swartz 到底发生了什么?」。
为何 fake.js 作者在删库之前,要顺带提一手 Aaron Swartz 呢?
有看过电影《互联网之子》的朋友,应该对 Aaron Swartz 这个人不陌生。
他毕业于斯坦福大学,是一名真正的计算机天才与黑客,被称为当前数字时代的罗宾汉。
在青年时期,Aaron 便致力于推广网络信息开放理念。我们所熟悉的 RSS、Markdown、CC 软件协议、Reddit 都是他亲自参与的项目。
2011 年,Aaron 被指控涉嫌非法侵入麻省理工大学、JSTOR 学术期刊在线存储系统,最高需面临 35 年监禁和 100 万美元罚款。
2013 年 1 月 11 日,在该案认罪辩诉阶段,Aaron 在其所在公寓自缢身亡,年仅 26 岁。具体死因,至今依旧成谜,这对应了 fake.js 作者在前文所提到的「What really happened with Aaron Swartz?」。
不过,Aaron 虽已逝去,但其作品与理念,却深深的影响了一代 IT 从业人员,使得越来越多人愿意将自己的软件授权、技术书籍、平台信息选择对外开放。
fake.js 早期选择开源,或多或少应该也有受到 Aaron 的影响。
但想了解 Marak 为何会突然转向,将 fake.js 项目代码移除,还得从 2020 年发生在他身上的一起事件说起。
2020 年 10 月 26 日,Marak 发了一条推文,称公寓失火,导致各种贵重物品丢失,无家可归,并提供了自己的 PayPal 账号寻求网友支持。
因此,有人说,Marak 选择清空 fake.js 的代码,是因为得不到项目预期回报,以及担心代码被其他人所利用。
其实,到这一步,Marak 还是占据主导地位的。因为 GitHub 用户有权对自己的开源项目停止维护,或归档删除。
不过,接下来发生的事,才是让这一事件真正爆发的导火索。
在清除项目代码之后,Marak 还向自己的两个开源项目 fake.js 和 color.js 提交了具有破坏性的 6.6.6 版本代码。
此次提交,会导致程序在运行时,陷入死循环,显示出一段「LIBERTY LIBERTY LIBERTY」文本与其它乱码:
在将具有破坏性代码被提交到 GitHub 后,Marak 发布推文,称自己的 GitHub 账号已被官方停用,导致他托管的 100 多个私有和公开仓库都无法访问:
截至发稿前,各大技术论坛对此事仍众说纷纭。
有人说考虑到知名开源项目的影响,fake.js 作者不应该意气用事,贸然删除自己的开源代码仓库。
有人则认为,GitHub 不应该封禁开发者账号,每个平台用户都应该有对自己代码的支配权。
还有开发者,已悄然把代码转移到了 GitLab,称不再信任任何互联网软件供应商。
但关于这件事,我是这么看的,fake.js 作者和 GitHub 官方两边都有错。
fake.js 作者不应该往具有影响力的开源项目提交破坏性代码,毕竟打工人没必要为难打工人。fake.js 提供的假数据生成功能,大部分应用于开发测试场景,出了问题,还是得让程序员自行找方案修复。
如果认为项目得不到预期回报,可以选择开放捐款渠道,或者闭源,打造成用户体验较好的开发者工具,按下载或接口请求次数进行收费。
而 GitHub 官方在停用开发者账号前,如果认定对方有违反平台规定的操作,应提前发邮件或站内通知警告,冻结作者对某个代码仓库的操作权限,再进行协商处理。不应该直接停用开源作者账号,禁用所有代码仓库的访问权限。
无论如何,开源不易,还是得相互理解与支持,才能走得更远。
相关推荐
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
-
Mysql和Oracle实现序列自增/*ORACLE设置自增序列oracle本身不支持如mysql的AUTO_INCREMENT自增方式,我们可以用序列加触发器的形式实现,假如有一个表T_WORKM...
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
-
概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...
- MySQL CREATE TABLE 简单设计模板交流
-
推荐用MySQL8.0(2018/4/19发布,开发者说同比5.7快2倍)或同类型以上版本....
- mysql学习9:创建数据库(mysql5.5创建数据库)
-
前言:我也是在学习过程中,不对的地方请谅解showdatabases;#查看数据库表createdatabasename...
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
-
执行"CREATETABLE新表ASSELECT*FROM原表;"后,新表与原表的字段一致,但主键、索引不会复制到新表,会把原表的表记录复制到新表。...
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
-
在街上看到的PandaDunk的超载可能让一些球鞋迷们望而却步,但Dunk的浪潮仍然强劲,看不到尽头。我们看到的很多版本都是为女性和儿童制作的,这种新配色为后者引入了一种令人耳目一新的新选择,而...
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
-
多功能雷达AN/SPY-1的特性和技术能力,该雷达已经在美国海军服役了30多年,其修改-AN/SPY-1A、AN/SPY-1B(V)、AN/SPY-1D、AN/SPY-1D(V),以及雷神...
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
-
全面分析汽车音响使用或安装技术常识一:主机是大多数人最熟习的音响器材,有关主机的各种性能及规格,也是耳熟能详的事,以下是一些在使用或安装时,比较需要注意的事项:LOUDNESS:几年前的主机,此按...
- 【推荐】ProAc Response系列扬声器逐个看
-
有考牌(公认好声音)扬声器之称ProAcTablette小音箱,相信不少音响发烧友都曾经,或者现在依然持有,正当大家逐渐掌握Tablette的摆位设定与器材配搭之后,下一步就会考虑升级至表现更全...
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
-
作者:初吻给了烟sco混迹张大妈时日不短了,手没少剁。家里有了汪星人,吸尘器使用频率相当高,偶尔零星打扫用卧式的实在麻烦(汪星人:你这分明是找借口,我掉毛是满屋子都有,铲屎君都是用卧式满屋子吸的,你...
- 专题|一个品牌一件产品(英国篇)之Quested(罗杰之声)
-
Quested(罗杰之声)代表产品:Q212FS品牌介绍Quested(罗杰之声)是录音监听领域的传奇品牌,由英国录音师RogerQuested于1985年创立。在成立Quested之前,Roger...
- 常用半导体中英对照表(建议收藏)(半导体英文术语)
-
作为一个源自国外的技术,半导体产业涉及许多英文术语。加之从业者很多都有海外经历或习惯于用英文表达相关技术和工艺节点,这就导致许多英文术语翻译成中文后,仍有不少人照应不上或不知如何翻译。为此,我们整理了...
- Fyne Audio F502SP 2.5音路低音反射式落地音箱评测
-
FyneAudio的F500系列,有新成员了!不过,新成员不是新的款式,却是根据原有款式提出特别版。特别版产品在原有型号后标注了SP字样,意思是SpecialProduction。Fyne一共推出...
- 有哪些免费的内存数据库(In-Memory Database)
-
以下是一些常见的免费的内存数据库:1.Redis:Redis是一个开源的内存数据库,它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。Redis提供了快速的读写操作,并且支持持久化数据到磁...
- RazorSQL Mac版(SQL数据库查询工具)
-
RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
- MySQL CREATE TABLE 简单设计模板交流
- mysql学习9:创建数据库(mysql5.5创建数据库)
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
- 【推荐】ProAc Response系列扬声器逐个看
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)