Как исключить небезопасные переходные зависимости package.json? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть package.json , который выдает множество предупреждений безопасности .Глядя на первый критический элемент, я вижу его open@0.0.5, который не обновлялся в течение пяти лет.Глядя на npm ll, он включен npm@6.5.0, где я использую последнюю версию, которая была обновлена ​​около двух недель назад.

Я хотел бы удалить небезопасные зависимости.В мире Java менеджер пакетов maven позволяет исключить некоторые переходные зависимости.В идеале, с помощью npm или другого менеджера пакетов узлов, я должен быть в состоянии исключить зависимости с уязвимостями.Тогда я могу повторно проверить, что мое приложение работает и не видит никаких ошибок безопасности.Есть ли способ быстро исключить что-либо, что имеет уязвимость безопасности, из моего package.json?Если не существует способа сделать это, какие способы можно предпринять, чтобы гарантировать, что мое приложение не использует небезопасные пакеты?

Обновление: Хотя в пакете указан "npm": "^6.5.0". Я собирал его с более старым npm, который обнаружил критическую проблему, упомянутую выше.Я исправил все проблемы с ./node_modules/.bin/npm audit fix --force

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

Это конкретное предупреждение предназначено для вашего файла блокировки, и его можно легко исправить, удалив yarn.lock или package-lock.json и переустановив зависимости.

0 голосов
/ 26 декабря 2018

По определению вы не можете исключить пакет, от которого зависит используемая вами зависимость.Другими словами, если вам требуется пакет A, а пакет A утверждает, что он зависит от пакета B, то удаление пакета B приведет к тому, что A либо вообще перестанет работать, либо начнет работать неуверенно.

К сожалению, это действительно происходит, и ваши опции включают в себя:

  1. Игнорирование предупреждения безопасности.
  2. Замена пакета A чем-то другим (применяется в некоторых случаях, но не в других).
  3. Попросите сопровождающего пакета A обновить версию пакета B, на который они полагаются, возможно, самостоятельно открыв запрос на получение.

В вашем случае, хотяЯ не уверен, что ваше расследование завершено - я не вижу open в списке зависимостей npm.Возможно, стоит отказаться от ваших node_modules и заново запустить npm install, а затем еще раз проверить, кто использует open.

...