拒绝白嫖,著名开源项目作者暴力删库,导致账号被封
yuyutoo 2024-10-15 16:52 1 浏览 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 官方在停用开发者账号前,如果认定对方有违反平台规定的操作,应提前发邮件或站内通知警告,冻结作者对某个代码仓库的操作权限,再进行协商处理。不应该直接停用开源作者账号,禁用所有代码仓库的访问权限。
无论如何,开源不易,还是得相互理解与支持,才能走得更远。
相关推荐
- MySQL5.5+配置主从同步并结合ThinkPHP5设置分布式数据库
-
前言:本文章是在同处局域网内的两台windows电脑,且MySQL是5.5以上版本下进行的一主多从同步配置,并且使用的是集成环境工具PHPStudy为例。最后就是ThinkPHP5的分布式的连接,读写...
- thinkphp5多语言怎么切换(thinkphp5.1视频教程)
-
thinkphp5多语言进行切换的步骤:第一步,在配置文件中开启多语言配置。第二步,创建多语言目录。相关推荐:《ThinkPHP教程》第三步,编写语言包。视图代码:控制器代码:效果如下:以上就是thi...
- 基于 ThinkPHP5 + Bootstrap 的后台开发框架 FastAdmin
-
FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。主要特性基于Auth验证的权限管理系统支持无限级父子级权限继承,父级的管理员可任意增删改子级管理员及权限设置支持单...
- Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示
-
本文实例讲述了Thinkphp5.0框架实现控制器向视图view赋值及视图view取值操作。分享给大家供大家参考,具体如下:Thinkphp5.0控制器向视图view的赋值方式一(使用fetch()方...
- thinkphp5实现简单评论回复功能(php评论回复功能源码下载)
-
由于之前写评论回复都是使用第三方插件:畅言所以也就没什么动手,现在证号在开发一个小的项目,所以就自己动手写评论回复,没写过还真不知道评论回复功能听着简单,但仔细研究起来却无法自拔,由于用户量少,所以...
- ThinkPHP框架——实现定时任务,定时更新、清理数据
-
大家好,我是小蜗牛,今天给大家分享一下,如何用ThinkPHP5.1.*版本实现定时任务,例如凌晨12点更新数据、每隔10秒检测过期会员、每隔几分钟发送请求保证ip的活性等本次分享,主要用到一个名为E...
- BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统
-
BeyongCms内容管理系统(简称BeyongCms)BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统,适用于企业Cms,个人站长等,针对移动App、小程序优化;提供完善简...
- YimaoAdminv3企业建站系统,使用 thinkphp5.1.27 + mysql 开发
-
介绍YimaoAdminv3.0.0企业建站系统,使用thinkphp5.1.27+mysql开发。php要求5.6以上版本,推荐使用5.6,7.0,7.1,扩展(curl,...
- ThinkAdmin-V5开发笔记(thinkpad做开发)
-
前言为了快速开发一款小程序管理后台,在众多的php开源后台中,最终选择了基于thinkphp5的,轻量级的thinkadmin系统,进行二次开发。该系统支持php7。文档地址ThinkAdmin-V5...
- thinkphp5.0.9预处理导致的sql注入复现与详细分析
-
复现先搭建thinkphp5.0.9环境...
- thinkphp5出现500错误怎么办(thinkphp页面错误)
-
thinkphp5出现500错误,如下图所示:相关推荐:《ThinkPHP教程》require():open_basedirrestrictionineffect.File(/home/ww...
- Thinkphp5.0极速搭建restful风格接口层
-
下面是基于ThinkPHPV5.0RC4框架,以restful风格完成的新闻查询(get)、新闻增加(post)、新闻修改(put)、新闻删除(delete)等server接口层。1、下载Thin...
- 基于ThinkPHP5.1.34 LTS开发的快速开发框架DolphinPHP
-
DophinPHP(海豚PHP)是一个基于ThinkPHP5.1.34LTS开发的一套开源PHP快速开发框架,DophinPHP秉承极简、极速、极致的开发理念,为开发集成了基于数据-角色的权限管理机...
- ThinkPHP5.*远程代码执行高危漏洞手工与升级修复解决方法
-
漏洞描述由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。漏洞评级严重影响版本ThinkPHP5.0系列...
- Thinkphp5代码执行学习(thinkphp 教程)
-
Thinkphp5代码执行学习缓存类RCE版本5.0.0<=ThinkPHP5<=5.0.10Tp框架搭建环境搭建测试payload...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- MySQL5.5+配置主从同步并结合ThinkPHP5设置分布式数据库
- thinkphp5多语言怎么切换(thinkphp5.1视频教程)
- 基于 ThinkPHP5 + Bootstrap 的后台开发框架 FastAdmin
- Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示
- thinkphp5实现简单评论回复功能(php评论回复功能源码下载)
- ThinkPHP框架——实现定时任务,定时更新、清理数据
- BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统
- YimaoAdminv3企业建站系统,使用 thinkphp5.1.27 + mysql 开发
- ThinkAdmin-V5开发笔记(thinkpad做开发)
- thinkphp5.0.9预处理导致的sql注入复现与详细分析
- 标签列表
-
- 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)