Как стать автором
Обновить

У пустого пакета npm «-» обнаружили 700 тысяч загрузок

Open sourceNode.JSGitHubРазработка под Linux


Эксперты Bleeping Computer обнаружили, что у пустого пакета npm «-» более 700 тысяч загрузок. Причем их количество все время возрастает с каждым днем. Вероятно, разработчики и пользователи его случайно устанавливают, когда ставят лишний пробел между «i» и "-" при установке флагов в нужных им пакетах с помощью пакетного менеджера npm.

Разработчик пустого пакета Дмитрий Паржицкий опубликовал его в реестре npm под версией 0.0.1 в тестовых целях год назад. Пакет не содержит функционального кода и не обновлялся после создания. Пакет содержит три файла:
tar tvf 0.0.1 / - 0.0.1.tgz
package/dist/index.js
package/package.json
package/README.md

Внутри файлов манифеста package.json и index.js в основном нет ничего интересного, только скелетный код.


Состав файл index.js и файла манифеста (package.json). Манифест включает в себя множество зависимостей разработки (devDependencies) и вызывает некоторые команды для компонента «ts-node», но это все. На данный момент это практически мертвый код.

В настоящее время пакет "-" используется (служит зависимостью) в 56 пакетах npm без понятного объяснения. У большинства из этих пакетов не более нескольких десятков загрузок в неделю.

Bleeping Computer считает, что, вероятно, пакет очень часто устанавливается случайно, когда кто-то запускает команды npm с терминала и допускает типографические ошибки. Например, в строке вместо «npm i somepackage» при расширенной установке пользователи пишут «npm i — someFlag somepackage». Эта опечатка приводит к тысячам установок пакета "-".

Вдобавок пакет может попасть по ошибке в качестве зависимости в файл package.json при его конфигурировании вручную пользователем.

Эксперты Bleeping Computer обнаружили в реестре npm другие аналогичные пакеты — i, g, install, D, и s. У них тоже тысячи загрузок в сутки и часть из них могли быть сделаны из-за опечаток при написании определенных параметров и ключей при установке нужных разработчикам пакетов npm.

Разработчик Мэтт Фриланд из Sonatype рассказал Bleeping Computer, что «npm может (и, возможно, должен) запрещать компоненты, имена которых совпадают с именами его команд». Фриланд пояснил, что после установки пакетов npm представляет обобщенное сообщение об успехе, такое как «добавлено 3 пакета и проверено 8 пакетов», вместо того, чтобы печатать точный список установленных пакетов. По его мнению, указание установленных пакетов в сообщении об успешном выполнении дало бы разработчикам шанс на самом деле обнаружить свои ошибки, а сейчас они это не видят.

Bleeping Computer советует разработчикам проявлять осторожность при вводе команд npm в терминале, особенно при использовании флагов и ключей и проверять зависимости в своих пакетах от загадочных и ненужных пакетов и удалять их.

В марте 2020 года пакетный менеджер npm стал частью GitHub, которой владеет Microsoft. Публичный реестр npm после интеграции с GitHub остался доступен и бесплатен.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы устанавливали пустой пакет npm «-»?
2.87% Да 6
65.55% Нет 137
34.93% Хм, нужно проверить 73
Проголосовали 209 пользователей. Воздержались 63 пользователя.
Теги:npm«-»npm i -
Хабы: Open source Node.JS GitHub Разработка под Linux
Всего голосов 23: ↑20 и ↓3+17
Просмотры6.3K
Комментарии Комментарии 4

Похожие публикации

Лучшие публикации за сутки