Как ограничить установку NPM - PullRequest
0 голосов
/ 28 ноября 2018

При обсуждении недавней атаки вредоносного ПО с использованием популярного пакета NPM (и после удаления этого пакета из нашей базы кода) я начал исследовать способы ограничения команд npm install,До сих пор я не нашел никакого способа ограничить то, что может установить разработчик.

Есть две причины, по которым это могло бы принести пользу всем:

  1. Иметь дополнительный уровень защиты от вредоносных пакетов
  2. Избегайте непреднамеренной установки пакетов, когда имя пакета было опечатано

Что касается # 1, идея состоит в том, что каждая группа может создать утвержденный список имен пакетов, которыеможет быть проверен по до того, как npm install действительно запустится - по сути, создаст некоторый тип процесса проверки для пакетов npm.

Что касается # 2, наша команда была фактически затронута удалением этого пакета в NPM- но единственная причина, по которой мы когда-либо имели эту зависимость, заключается в том, что пакет был установлен случайно и некоторое время оставался незамеченным.Вот что я думаю произошло:

  1. Разработчик хотел установить пакет и намеревался набрать npm install --save somepackagehere ( обратите внимание на тире )
  2. Разработчик случайно набрал npm install save ( no dash dash ), установив пакет save npm, который зависит от event-stream , который имелзависимость от flatmap-stream .

Версия узла: 9.9.1

Версия NPM: 6.4.1


ВОПРОС

Существует ли какой-либо способ достичь того, что я описал выше, который не зависит от ручного пересмотра кода?

1 Ответ

0 голосов
/ 14 августа 2019

Как предлагается в комментариях, просто проверка кода проверяет package.json изменения, которые служат для "ограничения" установок пакета NPM.

...