开源社区的危机:拒绝被“白嫖”?2大著名项目遭作者破坏
作者 | 林檎
来源 | 数据实战派
近日,一位开源开发者的故意破坏,再次引发了机构依赖开源库的争议。这一类开源库往往由维护者义务工作而支撑。
被破坏的开源库是 Marak Squires 开发的 color.js 库和 faker.js 库。这两个库被广泛使用,其中不乏企业和商业客户。因此,有数千个大型项目受此影响出现了停止运行,包括亚马逊 AWS 的 CloudDevelopment Kit。
目前 Color.js 现在似乎可以工作了,但 Faker.js 仍然受到影响。用户需要降级到之前的版本才能再次使用。
Marak 在 color.js 库的 v1.4.44-liberty-2 版本中给新的美国国旗模块加入了无限循环,依赖 color.js 的项目会在控制台看到不停打印的非 ASCII 字符。faker v6.6.6 版本的情况类似,他将这两个搞破坏的版本推送到 GitHub 和 npm。
数据显示,有近 19000 个项目依赖 color.js 库;faker 的周下载量超过 280 万次,有超过 2500 个项目依赖它。
Marak 的破坏行为是引入恶性提交,增加了个新的美国国旗模块,被破坏的版本导致应用程序无限地输出奇怪的字母和符号,开头是三行“自由,自由,自由”的文本。另外,faker.js 自述文件也被改成了“Aaron Swartz 到底发生了什么?” Swartz 是一位杰出的开发者,他帮助建立了知识共享、RSS 和 Reddit。2011 年,Swartz 被指控从学术数据库 JSTOR 窃取文件,后来在 2013 年自杀。Marak 提到 Swartz 可能是指围绕他的死亡的阴谋论。
reddit 上的热门帖子表示,Marak 破坏库代码是因为缺乏资金和被滥用开源项目。
事实上,在此次事件之前,这位开发者就曾公开批评,指责使用了这些库的企业对社区没有任何回馈。2020 年 11 月,他曾警告说,自己将不再义务工作支持大企业:“恕我直言,我不会再免费工作来支持《财富》500 强(Fortune 500)公司(以及其他规模较小的公司)了。趁这个机会,你可以发给我一份年薪六位数的合同,或者把这个项目分掉,让别人来做”。
在将这一错误更新推送到 fake .js 的两天后,Marak 发布了一条推文,指出他的账号已被 GitHub 暂停使用,尽管他为该网站上贡献了大量项目。
“NPM 已经恢复到以前版本的 fake .js 包,Github 已经暂停了我对所有公共和私人项目的访问。我有上百个项目。”推文中如此说道。
有安全专家批评 Marak 这种行为不负责任。GitHub 平台暂时封禁了 Marak Squires 的账号(已解封),此举也引发了对 GitHub 如何更好地管理开源项目的争议。
Marak 的大胆举动引起了人们对开源开发的道德和经济冲突的关注,这可能也是他这次行动的目标。
随着互联网行业的高速发展,大量网站、软件和应用程序依赖开源开发人员的工作来创建基本工具和组件。比如,按照使用的性质不同,软件就可以大概分为商业软件、试用软件、公有软件、开源软件。数据显示,不管是手机,还是电脑,平均每个程序都要依赖 150 个开源组件。
在开源这种模式下,所有服务都是免费的。这也意味着开发人员得不知疲倦地修复其开源软件中的安全问题。例如 2014 年影响 OpenSSL 的 Heartbleed恐慌以及最近在 log4j 中发现的涉及大量修复工作的 Log4Shell 漏洞。可是,当越来越多的开源软件和平台被融入到商业机构的服务体系中,不少公司以此获利颇丰却不支付费用,也不对开源社区做出相应的回馈,矛盾便日益凸显甚至激化了。
以此次的事件为案例,许多人曾认为“开源软件可以永久免费使用”、“开源软件使用无任何义务”等,这些固有的认知必须有所改变了。
往
期
回
顾
技术
用技术实现时序羽毛球动作预测
资讯
AI在嘈杂环境中看唇语识别理解
技术
50行python代码制作数据大屏
资讯
这个AI模型火上GitHub热榜
分享
点收藏
点点赞
点在看
相关文章:
状态和面向对象编程——1.定位步骤
定位 所有无人驾驶车要安全畅游全球,都必须经过一系列相同的步骤。 你一直在学习第一步:定位。在车辆能够安全驾驶之前,它们首先要使用传感器和收集的其他数据对它们所处的位置做出最佳估计。 卡尔曼滤波器 让我们来回顾一下卡尔曼滤波器对汽…

ldconfig命令详解,linux动态链接库
动态链接库管理命令 为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下. ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍…

用于自动驾驶的实时 YUV 多任务 CNN
作者 | AI 修炼之路来源 | AI 修炼之路摘要本文提出了一种针对低功耗车用SoC优化的多任务卷积神经网络(CNN)结构。我们介绍了一个基于统一架构的网络,其中编码器由检测和分割两个任务共享。该网络以25FPS运行,分辨率为1280800。简要讨论了直接利用原生YU…

博客5:文件,目录以及用户的权限管理
linux用户与组的相关内容简介: 1.Linux用户:Username/UID管理员:root,0普通用户:1-65535系统用户:1-499(在centos7上为1-999)作用:对守护进程获取资源进行权限分配登录…

以太坊代币空投合约的实现
2019独角兽企业重金招聘Python工程师标准>>> 本文将介绍如何在以太坊智能合约中实现代币的空投。区块链以太坊世界中所谓空投(airdrop),就是免费给你的区块链地址(公钥)发送代币。 代币空投的方式层出不穷&…

linux命令:ln 使用方法
命令:ln 使用方法指令名称 : ln使用权限 : 所有使用者使用方式 : ln [options] source dist,其中 option 的格式为 :[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}][--help] [--version] [--] 说明 : Linux/Unix 档案系统中…

10 个案例分享几个 Python 可视化小技巧,助你绘制高质量图表
作者 | 俊欣来源 | 关于数据分析与可视化一般在Python当中,我们用于绘制图表的模块最基础的可能就是matplotlib了,今天小编分享几个用该模块进行可视化制作的技巧,帮助你绘制出更加高质量的图表。同时本篇文章的第二部分是用Python来制作可视…

(转) 地区赛获胜策略,赛前默念!
1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做。交完每道题都要先打印。2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的…

USG防火墙telnet实验
实验使用USG5500防火墙 ,<SRG>system-view [SRG]interface g0/0/0 [SRG-GigabitEthernet0/0/0]ip address 192.168.1.1 24 接口配置地址[SRG-GigabitEthernet0/0/0]display this(显示当前配置) [SRG-G…

如何营造专属你的企业技术影响力氛围感?我不允许你还不知道
CSDN 推出《开发者研究与洞察》服务。基于3200万开发者的资源,从开发者视角出发,聚焦开发者“关注”、“使用”、“体验”三方面,帮助技术推广者打造技术品牌、优化技术产品的市场投放策略、提升技术产品的开发者使用体验,直接聆听…

php报错Permission denied
去apache的log下看error_log文件 #cd /usr/local/apache2/logs/ (13)Permission denied: exec of ....index.php failed加权限就可以 #chmod x index.php路径

Spring笔记——8.基于XML Schema的简化配置
我们可以使用XML Schema的配置方式来简化xml文件的配置。p:简化设值注入p:与property子元素作用相同,用于设值注入。若想使用p,则xml文件中需要引入对p的说明,一般自动生成的xml都会自带。xmlns:p"http://www.spr…

测试服务命名和动态注册路由的方式@Xan
2019独角兽企业重金招聘Python工程师标准>>> 1、测试服务命名:如不需要网关进行权限和登录验证时,服务名称命名后面加“tests”,例如: sysadmintests 2、动态注册路由地址: http://192.168.2.164:55551/sys…

POJ1386 Play on Words
题意:判断一些单词能不能首尾连成一体 #include <iostream> #include <algorithm> #include <cstring> #include <cmath> #include <cstdio> using namespace std; int n,father[30],range[30],save[100010],in[30],out[30]; bool us…

Linux tail 命令详解
用途从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。 语法标准语法tail [ -f ] [ -c Number | …

万粉博主推荐,微信小程序 +Flask 后端调用 AnimeGanV2
作者 | Yunlord博客 | Yunlord做一个小程序,直接在手机端就能一键生成专属于自己的动漫头像,下面是展示效果!!!核心功能设计该小程序想要实现的是将微信头像或者选择相册中的照片动漫化,所以拆解需求后&…

第十周课下作业
第十周课下作业(补做课堂测试) 一、知识点总结 1、单链表 创建单链表链表中数据的插入list.add("**");链表中数据的排序Collections.sort();链表中数据的删除lsit.remove("");2、排序 树集概念树映射 TreeMap<K,V>**适合用于数…

IE6的bug
内部系统 公司6楼正常,7楼不正常,一查系统没问题,7楼IE6,6楼是IE8 原因是系统接入第三方一个富客户端的程序,这个IE6不支持所以一直卡着。卡多了就挂了。 因为表象是还在卡着的网页浏览器一关重开就好了。。。。 而如…

python-sendcmd主动模式访问ftp——修改port中IP地址信息
用python访问ftp站点,主动模式发送port时,修改了IP地址,抓包分析网络会话信息。activesocket.py 1 #python for socket active mode 2 #!/usr/bin/python 3 # -*- coding: utf-8 -*- 4 import ftplib5 import os 6 import socket 7 impor…

「CSDN 2021年度 IT 技术影响力之星评选」活动报名倒计时!
“CSDN 2021年度IT技术影响力之星评选”活动自2021年12月6日启动以来受到了行业各界的关注以及企业和个人的积极响应,截止目前,已收到上千份参评报名。本次评选活动的第一阶段——企业/个人参与提名将于2022年1月30日结束,以真实数据为基础&a…

Spring Cloud入门教程 - Zuul实现API网关和请求过滤
简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证过滤压力测试Canary测试动态路由服务迁移负载均衡安全静态请求处理动态流量管理在本教程中,我们将用zuul,把web端的请求/product转发到对应的产品服务上&…

谷歌大神 Jeff Dean 领衔,万字展望5大 AI 趋势
作者 | 学术头条来源 | 学术头条对于关心人工智能技术进展的读者来说,每年年底来自整个谷歌 research 团队撰写的年终总结,可谓是必读读物。今天,由谷歌大神 Jeff Dean 领衔,这份总结虽迟但到。出于知识传播目的,“…

php的webservice的wsdl的XML无法显示
php的webservice的因为wsdl有中文所以xml无法显示 可以用Nopepad 转码即可 以UTF-8无BOM编码

Journey源码分析三:模板编译
2019独角兽企业重金招聘Python工程师标准>>> 在Journey源码分析二:整体启动流程中提到了模板编译,这里详细说下启动流程 看下templates.Generate()源码: func Generate() error {compiledTemplates.Lock()defer compiledTemplates.Unlock()//…

linux中安装程序
实验:为 Linux 主机安装应用程序 环境:vmware workstation 14 . redhad-server-6.4需求:1.使用 RPM 包的方式安装 Mozilla Firefox 浏览器2.使用源代码包编译的方式安装 Apache3.使用 RPM 包的方式安装Webmin管理软件,并使用 rpm查…

php 的webservice类库NuSoap介绍
NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB 服务。它是一个开源软件,当前版本是 0.9.5 ,支持 SOAP1.1 、 WSDL1.1 ,可以与其他支持 SOAP1.1 和 WSDL1.1 的系统互操作。 NuSOAP 完全由PHP语言编写,由…

我用 YOLOv5 做情感识别!
作者 | 陈信达来源 | DatawhaleAI技术已经应用到了我们生活中的方方面面,而目标检测是其中应用最广泛的算法之一,疫情测温仪器、巡检机器人、甚至何同学的airdesk中都有目标检测算法的影子。下图就是airdesk,何同学通过目标检测算法定位手机位…

Odoo 学习 【二】Environment 概览
Environment 参考链接: http://odoo-new-api-guide-line.readthedocs.io/en/latest/environment.html#environment 在新的API中,引入了环境的概念,它的主要目标是提供对游标、用户、模型、上下文、记录集、和缓存的封装。 有了这些,你没有必要…

php使用NuSoap产生webservice结合WSDL让asp.net调用
<?php require_once("nusoap-0.9.5/lib/nusoap.php"); //定义服务程序 function Add($a,$b){return $a$b;}//初始化服务对象 , 这个对象是类 soap_server 的一个实例 $soap new soap_server; //调用服务对象的 register 方法注册需要被客户端访问…

分享 10 个超实用的 Python 编程技巧
作者 | 欣一来源 | Python爱好者集中营今天小编来给大家分享几个Python的编程技巧,帮助你迅速完成地从小白到Python大神的蜕变。字典翻转首先我们来看字典的翻转,假设我们有下面类似的一个字典对象与数据car_dict { "brand":"Tesla"…