Описание инструмента
Команда отправляет описание зависимостей, настроенных в вашем проекте, в реестр по умолчанию и запрашивает отчет об известных уязвимостях.
Возвращенный отчет содержит инструкции о том, как действовать в отношении этой информации.
Команда завершится с кодом выхода 0, если уязвимостей не обнаружено.
Вы также можете сделать так, чтобы npm автоматически исправлял уязвимости, запустив npm audit fix
Обратите внимание, что некоторые уязвимости не могут быть исправлены автоматически и требуют ручного вмешательства или проверки.
Также обратите внимание, что поскольку исправление аудита npm запускает полноценную установку npm изнутри, все конфиги, которые применяются к установщику, будут также применяться к установке npm – так что такие вещи, как исправление аудита npm –package-lock-only будут работать как положено.
Уязвимости
Время от времени после установки зависимостей ваших проектов, npm i, вы будете сталкиваться с ошибкой от NPM, которая выглядит примерно так:
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ braces │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ jest [dev] │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ jest > jest-cli > micromatch > braces │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/786 │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 62 low severity vulnerabilities in 20610 scanned packages
62 vulnerabilities require semver-major dependency updates.
found 62 low severity vulnerabilities in 20610 scanned packages
62 vulnerabilities require semver-major dependency updates.
Это означает, что в этом примере будет еще 61 уязвимость, варьирующиеся от low до high , и, конечно же, самая опасная уязвимость – high.
Для получения дополнительной информации о любой из этих уязвимостей есть также ссылка на уязвимость в NPM в разделе «More info» этого предупреждения.
Поначалу может показаться странным, как правильно исправить эти уязвимости.
На самом деле NPM предоставляет сервис, встроенный в NPM, который должен автоматически устранять эти проблемы, npm audit fix, но я обнаружил, что это будет работать очень посредственно и оставит вам почти столько же уязвимостей, что и раньше.
Фактически, вот пример того, что произошло после того, как я запустил npm audit fix:
fixed 0 of 62 vulnerabilities in 20610 scanned packages
1 package update for 62 vulns involved breaking changes
(use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)
npm audit fix --force
npm WARN using --force I sure hope you know what you are doing.
Исправление
Обновляйте пакеты по одному с помощью команды, предложенной NPM, вместо запуска команды npm audit fix –force.
Например, npm install –save-dev jest@24.8.0.
Прежде всего, я хочу сказать, что это может быть невероятно очевидно для тех, кто сталкивался с этой проблемой раньше.
Когда я впервые увидел всеэ то, это был гигантский список предупреждений, и, будучи ленивым, я даже не удосужился прокрутить список проблем.
Если вы просто продолжите прокручивать внутри своей консоли до самой первой проблемы, вы фактически столкнетесь с исправлением, и да, как и следовало ожидать, это так же просто, как обновить пакет, вызывающий проблему.
npm audit --fix
=== npm audit security report ===
# Run npm install --save-dev jest@24.8.0 to resolve 62 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ braces │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ jest [dev] │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ jest > jest-cli > jest-config > babel-jest > │
│ │ babel-plugin-istanbul > test-exclude > micromatch > braces │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/786 │
└───────────────┴──────────────────────────────────────────────────────────────┘
... 61 more vulerabilities ...
Заключение
В итоге, ручное обновление уязвимых пакетов и запуск исправления аудита npm –force даст те же результаты.
Единственное отличие состоит в том, что ручное обновление наших пакетов позволит нам обновить один пакет, протестировать на наличие критических изменений, а затем обновить следующий пакет, вместо того, чтобы просто обновить все пакеты сразу, найти критическое изменение и не иметь представления какой пакет решил все испортить.
НЕ КАК НЕ МОГУ РЕШИТЬ ЭТУ ПРОБЛЕМУ
https://i.imgur.com/067KxR8.png
подскажите пожалуйста как решить проблему
Удалось решить?