这是继“Apache Log4j 2 漏洞”发生一月之后的今天,该漏洞还尚未彻底平息,不曾想又发生了一起令许多开发者“头秃”的开源事件:faker.js与colors.js开源库遭开发者恶意破坏, 成千上万个使用了流行开源npm包faker.js和colors.js的项目一夜之间突然“变砖”,不断输出满屏乱码,而“罪魁祸首”竟是项目作者Marak Squires故意为之。
尽管开源项目有着“众人拾柴火焰高”的特性,但也难防有人使坏。
faker.js 和 colors.js 的应用十分广泛,如 AWS CDK 等许多流行工具均在开发过程中使用了这两个库,一直以来也没有意外发生。据 faker.js 的 GitHub 页面显示,该库代码已被全部删除,所有 commit 信息都被改为「endgame」,且 Readme 部分也仅剩下项目作者 Marak Squires 留下的一句话:“What really happened with Aaron Swartz(到底发生了什么)?”
(注:Aaron Swartz 是一名出色的开发人员,曾建立 Creative Commons、RSS 和著名社交网站 Reddit,但在 2011 年被指控非法入侵 MIT 和学术数据库 JSTOR 以窃取文件,后于 2013 年自杀。)
在项目中如果使用了遭到破坏的版本,会导致应用程序无限输出奇怪的字母与符号。从第三行文本开始,上面会呈现“LIBERTY LIBERTY LIBERTY”。
尽管 color.js 看似已更新到新版本,但 faker.js 可能还需再等待一段时间,着急的朋友可尝试降级到先前的 5.5.3 版本。
此外 Bleeping Computer 发现这两个库的开发者(Marak Squires)向 colors.js 引入了恶意提交,添加了所谓的 American flag 模块,并推出了可触发同样破坏性事件的 6.6.6 版 faker.js 库。
由于 faker.js 在 npm 上的每周下载量接近 250 万、colors.js 亦有约 2240 万,本次破坏事件还是给开源项目敲响了安全警钟。深挖之后,有人将问题源头指向了 2020 年 11 月起在 GitHub 上发表的一篇帖子。
Squires 声称不想自己的努力再被财富 500 强(其已其它小企业)白嫖,并希望拿到一份年薪六位数的合同。或者分叉项目,并让其他人参与其中。
针对此次事件,诸多资深开发者也表达出了各自的看法。
资讯安全专家 VessOnSecurity 认为:“这太不负责任了!如果你在发布免费代码时遇到问题,那就不要发布。你破坏自己被广泛使用的项目,不仅伤害了大企业,也伤害了所有使用它的人。这会导致人们害怕更新,因为新版本可能并不安全。”
软件工程师 Sergio Gómez 则认为:“从 GitHub 删除他自己的代码居然违反了他们的服务条款?这是道德绑架!我想我们需要开始分散托管免费软件源码了。”
许多网友也对此各执一词。
@Mike_Walsh:“老实说,这人完全有权破坏自己的工作,尤其是当他利用自己的空闲时间维护这些项目,却没有看到一分红利时。为什么大公司就应该从别人的无偿劳动中赚到一大笔钱,甚至他们还声称这样做是‘出于对开源的热爱’?所以我觉得这样很公平,你对我好我会回报你,但如果你在背后捅了我一刀,也同理。”
@GT500:“就我的理解来看,我认为这个人忘记了开源的精神,只是贪婪罢了。如果他想要别人为他的软件付费,那他就不应该在开源许可下发布它。开源的倡导者花了几十年的时间试图让公司使用开源软件,试图说服他们这是免费的、应该使用它,且永远不必为此付费。而这个人的行为会导致什么?我们可能会回到公司只使用垃圾付费软件的黑暗时光,因为他们会觉得已经不能再信任开源项目了。”
下面通过三种方法来搭建公司私有npm仓库,每种方式都有自己的优势。启动并配置服务、设置注册地址、登录cnpm、包上传到私有仓库、查看预览包、通过verdaccio搭建....
webpack:解析js文件,无法解析的文件需要借助loader,npm插件发布(vue&webpack&单页面):npm init =>package.json,创建.vue文件 =>插件界面及功能,index.js =>入口文件
NPM是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。这篇文章整理NPM常用的一些命令
直接通过&&连接多条命令,在npm run start的时候,发现只停留在第一个命令执行监听,后面的命令都没有执行。只能通过打开多个窗口分别执行多条命令,那么有没有办法实现一条npm命令执行多条监听呢?
npm和bower太像了,就像一对孪生兄弟…… npm的文件是package.json,包安装的目录是node_modules。 bower的文件是bower.json,包安装的目录是bower_components。使用命令也基本一致
这篇文章主要介绍了vue项目中Npm run build 根据环境传递参数方法来打包不同域名,使用npm run build --xxx,根据传递参数xxx来判定不同的环境,给出不同的域名配置,具体内容详情大家参考下:config文件夹下dev.env.js中修改代码、prod.env.js中修改代码 HOST为截取到的参数
使用node.js和npm,在安装模块的时候报错npm WARN saveError ENOENT: no such file or directory, open ...的解决办法。这个原因就是因为项目没有进行初始化,缺少package.json文件造成的。需要package.json才能npm install。 可以npm init初始化生成一个package.json。
抽空写了一个 textarea,打算发布到 npm 的时候却遇到了问题,之前用 vue-cli 2.x 的时候,打包配置项非常透明,可以很容易的修改,但升级到 vue-cli 3.x 之后,反而一脸懵逼
如果您曾在 Node 或 JavaScript 前端开发中投入过时间和精力,那么您就知道 npm 中有数以十万计的模块可供您选择。挑选模块可能很难,但您只需要一些方法点来解决它。当您正在为如何抉择浪费时间,或者甚至不知道从哪里开始时,请使用本指南来帮助您。
关于 npm run eject 报错的问题,昨天新开React的项目, 刚刚一上手就碰到问题,解决方法(前提你有git).出错的原因:应该是git没有安装好,或者代码没有提交上git
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!