Правильный способ исправить потенциальную уязвимость безопасности в зависимости, определенной в package-lock.формат JSON

Github дал мне эту ошибку в одном из моих репозиториев.

We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities 
and should be updated.

зависимость не определена в нашем . Насколько я понимаю, удалять package-lock.json файл и восстановить его. Однако, я не вижу другого способа решить эту проблему. Если я отклоню эту уязвимость безопасности, она появится снова через пару дней. Есть идеи? Спасибо!

4 ответов


вы должны попытаться определить название проблемного пакета, а затем запустить

npm install package-name

замена имени пакета, очевидно.

это установит последнюю версию пакета, и очень часто последняя версия исправила проблему безопасности. Если у вас есть ограничение на версию (например: 1.2), попробовать всегда можно:

npm install package-name@^1.2

и последняя исправленная версия будет установлен

New: теперь, с npm@6 Вы можете напрямую запустить

npm audit fix

чтобы решить эту проблему:

Решение 1: Сначала найдите уязвимость: использование вашего терминала: cd в ваш проект, затем запустить "npm ls hoek"

и, наконец,: npm установить bcrypt@latest

затем нажмите обновленный проект в git.(Я. e выполните новую фиксацию).

решение 2:

если первый вариант/решение не устраняет проблему.Изменить версию вручную в вашем пакете-блокировка.формат JSON. Измените версию вручную с 2.16.3 на 4.2.1

"hoek": {
      "version":  "4.2.1",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
      "dev": true

затем обновите свой проект на GitHub(commit/push) Просто убедитесь, что каждое появление версии hoek в вашем пакете-lock.версия json изменена на 4.2.1

в качестве альтернативы, если вы можете найти способ изменить версию hoek / обновить hoek с помощью npm, все будет намного проще.(что-то вроде : обновление npm @hoek..версия)..или удалите конкретную зависимость затем переустановите его с помощью bower или npm.


насколько я понимаю, удалять блокировку пакета не рекомендуется.JSON файл и восстановить его.

но, это то, что обычно делается в этом случае.
См., например,угловой / угловой-CLI выпуск 8534, который решается PR 8535.
Это приводит к зависимому проекту, такому как frees-io/freestyle-opscenter-webclient to обновить package-lock.json: PR 31.


самый простой/простой способ исправить это:

  1. npm install <dep>
  2. npm uninstall <dep>
  3. npm update
  4. npm install

From:https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041