这个空的 NPM 包竟然超过 80万次下载!!!

2021-09-17 14:43:35 浏览数 (1)

❝让我告诉你这个不起眼的包,它在过去一年中产生了超过 80 万的下载量。 ❞

这个npm包是-

我们在Runkit尝试打印出它导出的模块,返回的是null,这个npm包就是一个赤裸裸的空包

为什么需要下载它?

❝令人难以置信的是,人们实际上正在下载这个包。并且每个月的下载量都在增加。下图说明了自软件包在 npm 上发布以来的下载次数。 ❞

但是,如果这让您感到惊讶,请等到我告诉你更疯狂的部分。它被用作超过 60个npm包的依赖项。

我们随便打开一个依赖-包的仓库,以black-ts为例子

这个-包安静的躺在dependencies依赖项,而且还是dependencies!!!,突然觉得后背发凉

如果我告诉你,你也将它下载到你的项目中呢?它发生在你甚至不知道的情况下。也许它正静静地坐在你的package.json现在。而你对此一无所知。也许你是 800,000 人中的一员,不信你可以检查一下

❝那么我们为什么会安装它呢? ❞

我们都知道为了安装npm包,我们需要运行以下命令之一。但是,我们写的命令有很多种变体,但不一定都是对的。

代码语言:javascript复制
npm i package
# or
npm install --save package
# or 
npm i -g package

有时您过早按下空格键,有时您忘记了一个字母。或者,如果你像我一样,有时最终会写出完全不同的东西。关键是,很容易打错字。注意-和g的间距

代码语言:javascript复制
npm i - g package  // ❌

也就是作者发现了我们这种行为方式,专门搞了这个-包,真是个鬼才

最后作者Dmitry澄清说,虽然该软件包目前没有做任何事情,但他计划扩展它,当人们试图意外安装它时抛出错误消息。虽然这听起来毫无意义,但它最终可以为您节省1kb的包大小。

为什么-包可能是危险的?

虽然-现在没有危险,但如果你的项目中不小心安装到它,然后发布到生产,一旦存在安全漏洞,你的用户数据等等都会被窃取,妥妥的事故

所以一般公司都会配套代码检测工具等安全扫描工具,可以把关项目的安全,但是作为开发还是要提高自己的素养

参考文献

  • https://www.npmjs.com/package/-
  • https://www.npmjs.com/package/black-ts

0 人点赞