Уязвимость глубокого аудита в npm - PullRequest
0 голосов
/ 08 июня 2018

Фон:

Я хотел перейти на Коа из Экспресс , однако я также использую socket.io для большей части моей работы, и нужно обмениваться сеансами между типами соединений.Введите koa-socket-session .

Когда я установлю это, npm точно предупредит меня об одной уязвимости высокой серьезности:

koa-socket-сессия > koa-socket.io > socket.io > socket.io-client > engine.io-client > parsejson

Будучи хорошим разработчиком, я решил, что разберусь с ним и отправлю патч.

Через несколько мгновений я понимаю, что проблема в том,старая версия socket.io требуется для koa-socket.io .Я полагаю, я просто исправлю последние изменения, отправлю патч и буду в порядке.НО ...

Проблема

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

Однако, пока предыдущий разветвление не будет перенесено в основную ветвь, даже если она вообще есть, я не могу исправитьследующий шаг без указания зависимости на мой собственный форк и разделения всех их кодовых баз.Это может занять месяцы, годы или, может быть, даже никогда не произойти, если мои запросы извлечения не будут приняты.

Решения ?

Единственные решения, которые я могу придумать, это:

  1. Создайте совершенно новую цепочку зависимостей, присвойте им все новые имена, опубликуйте их на npmjs и github и откажитесь от всех текущих пакетов.
  2. Объедините всезависимости в одну и опубликовать их как отдельный пакет

Ясно, что любой из этих методов будет полным нарушением стандартов сообщества, я ДЕЙСТВИТЕЛЬНО не собираюсь узурпировать все эти проекты, и есть вероятность, что, и мои вилки никогда не будут использоваться никем, кроме меня, поэтому я отстану от всех остальных.

Я думаю, что эта проблема возникает сотни раз каждый день, и с такимИспытанная и верная система, такая как npm, должен быть стандартный способ справиться с этим, но я нигде не смог найти «правильного» решения.Какой правильный способ справиться с этим?

...