大家好,我是 ConardLi
,今天前端圈又炸了... 原因居然还是因为一个 npm
包。
起因是某个同学在使用 npm
构建前端项目时,启动项目后桌面自动创建了一个《 WITH-LOVE-FROM-AMERICA.txt
》文件。
在网友的热心帮助下,发现这个 txt
文件是 vue-cli
的依赖项 node-ipc
包的作者 RIAEvangelist
在投毒,该作者是个反战人士,还特意新建了一个 peacenotwar
仓库来宣传他的反战理念。
更过分的是,作者不只添加了反战标语,还在旧版本 10.1.1-10.1.2
中添加了恶意 JS 文件删除俄罗斯和白俄罗斯用户文件:
攻击源码在仓库中仍可找到。源码经过压缩,简单地将一些关键字符串进行了 base64
编码。其行为是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP,会尝试覆盖当前目录、父目录和根目录的所有文件,把所有内容替换成 ❤。
当前 npm 已禁止下载包含 peacenotwar
模块的版本,并提示:npm ERR! 451 Unavailable For Legal Reasons
。
前段时间的 colors.js
和 faker.js
的风波还历历在目。作者因为私人问题,分别对它们进行了植入恶意代码和删库这样的操作,它们都在 npm 上拥有超过千万的下载量!
不得不说 npm
生态圈简直太脆弱了,一个庞大的前端项目动不动就会引入数以万计的依赖,这些底层依赖只要有一个出了问题,就有可能影响整个项目!
不管出于目的,这种行为都应该杜绝!这样的行为严重破坏了开源生态中的信任。引用Hax老师在知乎上的一段回答:
我建议所有人在开源社区如
GitHub
的相关issue
讨论中,借鉴我党的光荣传统和斗争经验,避免单纯的情绪输出,以建立「开源世界反分裂共识」为核心目标,团结可以团结的全世界开发者,建立广泛的统一战线,无论其来自中国,欧美、印度、俄罗斯、乌克兰、日韩、非洲……共同对抗将政治立场和意识心态分歧凌驾于开源价值之上的错误观点和分裂行为,主动有意识地传播人类命运共同体这一真正普世的价值观——并引导世界人民认识到,开源和开放标准就是构建人类命运共同体的伟大实践的一部分。
对此,你怎么看?