Правильный способ исправления потенциальной уязвимости безопасности в зависимости, определенной в 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.json
. Насколько я понимаю, не package-lock.json
файл package-lock.json
и восстановить его. Однако я не вижу другого способа решить эту проблему. Если я убью эту уязвимость, она появится снова через пару дней. Есть идеи? Спасибо!
Ответы
Ответ 1
Новое: теперь с npm @6 вы можете напрямую запускать
npm audit fix
Старый ответ:
Вы должны попытаться определить проблемное имя пакета, а затем запустить
npm install package-name
замена имени пакета, очевидно.
Это установит последнюю версию пакета, и очень часто последняя версия устраняет проблему безопасности. Если у вас есть ограничение на версию (например: 1.2), вы всегда можете попробовать:
npm install [email protected]^1.2
и будет установлена последняя исправленная версия
Ответ 2
Чтобы решить эту проблему:
Решение 1. Сначала найдите уязвимость: используя ваш терминал: cd в свой проект, затем запустите "npm ls hoek",
И, наконец: npm install bcrypt @latest
Затем нажмите обновленный проект на git. (Т. Е. Выполните новую фиксацию).
Решение 2:
если первый вариант/решение не решает проблему. Измените версию вручную в своем пакете lock.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 в вашей версии package-lock.json изменено на 4.2.1
В качестве альтернативы, если вы можете найти способ изменить версию hoek/update hoek с помощью npm, это сделает вещи намного проще (что-то вроде: npm update @hoek..version).. или удалите определенную зависимость, затем переустановите ее с помощью беседки или НПМ.
Ответ 3
Насколько я понимаю, не удастся удалить файл package-lock.json и восстановить его.
Тем не менее, это то, что обычно делается в этом случае.
См. Например, угловой/угловой-cli выпуск 8534, который разрешен PR 8535.
Это приводит к зависящему проекту, например frees-io/freestyle-opscenter-webclient
для обновления своего package-lock.json
: PR 31.
Ответ 4
Самый простой/простой способ исправить это:
-
npm install <dep>
-
npm uninstall <dep>
-
npm update
-
npm install
От: https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041
Ответ 5
У меня была та же проблема с уязвимостью безопасности в lodash, в проекте, который я строил с использованием пряжи. Github пометил их как проблемы безопасности.
Я попробовал ответ из @rileymanda выше, используя терминал: cd в проект, затем запустил npm ls lodash
.
Это обнаружило, что в моем случае ошибка была в реагирующих скриптах. Быстрый Google на наличие проблем с реагирующими скриптами и lodash обнаружил, что это известная проблема.
Я пробовал разные вещи, чтобы исправить с помощью пряжи - все безуспешно. npm ls lodash
все еще показывал уязвимую версию lodash в использовании.
Прочитав блог Мэтта Тернбулла об улучшениях в npm, я переключился с пряжи на npm. (Удалить yarn.lock
, удалить ./node_modules
. Запустить npm install
). npm ls lodash
теперь показывал последние версии зависимостей - ура! Предан github, и теперь он был счастлив, что уязвимость исчезла.
Похоже, что пряжа может бороться с такими проблемами (или не предназначена).
Если вы столкнулись с этой проблемой при сборке с использованием пряжи, попробуйте переключить [назад] на npm!
Ответ 6
Известные уязвимости безопасности и должны быть обновлены.
С 23 мая 2019 года у вас теперь есть " Dependabot: Автоматические исправления безопасности "
Благодаря интеграции Dependabot мы выпустили автоматические исправления безопасности в виде общедоступной бета-версии.
Автоматические исправления безопасности - это запросы извлечения, генерируемые GitHub для исправления уязвимостей безопасности.
Они автоматизируют утомительную часть рабочего процесса и позволяют разработчикам легко поддерживать свои зависимости в актуальном состоянии.
Подробнее см. В разделе " Настройка автоматических исправлений безопасности ".
Примечание. Автоматические исправления доступны в бета-версии и могут быть изменены.
Вы можете включить автоматические исправления безопасности для любого хранилища, в котором используются предупреждения безопасности и граф зависимостей.
В течение следующих нескольких месяцев, начиная с мая 2019 года, мы автоматически включим автоматические исправления безопасности в каждом хранилище, в котором используются предупреждения безопасности и график зависимостей.
Ответ 7
Это работает для меня.
удалите все ваши зависимости и установите его снова
Например,
из package.json см. список ваших зависимостей
{
"name": "ebook-saler",
"version": "1.0.0",
"description": "App for selling ebooks",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "Md Shayon",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"hoek": "^6.1.3",
"stripe": "^7.5.0"
}
}
Выполните команду для этого
npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git push
Ответ 8
- На GitHub перейдите на главную страницу репозитория.
- Под именем своего хранилища нажмите Безопасность.
- Нажмите на предупреждение, которое хотите просмотреть.
- Просмотрите сведения об уязвимости и, если возможно, запрос на извлечение, содержащий автоматическое исправление безопасности.
- При желании, если еще нет автоматического исправления безопасности для предупреждения, для создания запроса на устранение уязвимости нажмите "Создать автоматическое исправление безопасности".
- Когда вы будете готовы обновить свою зависимость и устранить уязвимость, объедините запрос извлечения.
Смотрите подробности
Ответ 9
попробуйте npm audit fix
, это приведет ко многим предупреждениям
затем npm i [package.name]@xxx
например:
"dependencies": {
"lodash": ">=4.17.13"
}
npm i [email protected]
Ответ 10
Мне нужен хакер Срочно нужен хакер Срочно нужен хакер Срочно нужен хакер