npm audit
Запустите проверку безопасности
Основная функция: команда проверки передает описание зависимостей, настроенных в проекте, в реестр по умолчанию и требует отчета об известных уязвимостях. В случае обнаружения каких-либо уязвимостей будут рассчитаны последствия и соответствующие меры по устранению. Если указан аргумент fix, исправление будет применено к дереву пакетов. Конкретная ссылка: https://www.npmrc.cn/quick-start/about-npm.html.
Здесь мы в основном рассказываем, как использовать функцию сканирования уязвимостей.
фактически,Многие онлайн-решения работают напрямуюnpm audit
Заказ,ЭтоНИОКРУгол не проблема
Но изНИОКРэффективностьперспектива,Также необходима определенная работа по экологическому управлению.:
Например: когда мы строим конвейер, нам нужно получить последнюю версию кода.
Но в вытянутом коде помимо бизнес-кода нужны еще и некоторые пакеты зависимостей.
В Node.js,Есть три важных документа.:node_modules
、package.json
и package-lock.json
node_modules
:node_modules Многие файлы модулей и плагины хранятся в папке node_modules — это папка, используемая для хранения пакетов, загруженных и установленных с помощью инструмента управления пакетами после установки узла. Например, такие инструменты, как webpack, gulp и grunt. В node.js модули и файлы имеют взаимно однозначное соответствие, что означает, что файл node.js является модулем.
package.json
:концепция:package.jsonПросто управляйте своим локальным УстановитьизnpmСумка,Используется для определения различных модулей, необходимых для этого проекта.,以及项目из配置信息(Например, имя、Версия、метаданные, такие как лицензия). "
Сценарий использования: при копировании проекта вам не нужно копировать папку node_modules. Если вы копируете, это будет очень медленно, поэтому вам нужно использовать package.json для записи номера версии зависимости, что может решить проблему сохранения. установленные зависимости соответствуют исходным зависимостям и версиям проекта.
package-lock.json
:记录模块и模块之间из依赖关系,Заблокировать версию пакета,Запишите древовидную структуру и адреса загрузки сторонних пакетов, от которых зависит проект, чтобы ускорить скорость повторной загрузки.
Подробную информацию можно найти по адресу: https://blog.csdn.net/weixin_48986139/article/details/124019530.
Во время каждого процесса извлечения кода студенты, занимающиеся исследованиями и разработками, могут не загружать локальные пакеты зависимостей в хранилище кода точно и вовремя из-за множества соображений разработки. Поэтому в процессе создания конвейера необходимо сначала обновить пакеты зависимостей и модули. с модулями, а затем сканирование кода:
rm -rf ./node_modules ./package-lock.json
npm cache clean --force
tnpm cache clean --force // Если существует внутренний адрес пакета npm, вам необходимо выполнить этот шаг
npm install --legacy-peer-deps && npx npm-force-resolutions
tnpm install --legacy-peer-deps && npx npm-force-resolutions // Если существует внутренний адрес пакета npm, вам необходимо выполнить этот шаг
npm install
Если tnpm нет, нужно положить соответствующий пакет в папку node_modules.
На данный момент зависимые пакеты в основном установлены, и затем можно запустить аудит npm.
Но здесь на самом деле есть много параметров на выбор:
Например: если вас интересуют только уязвимости средней и выше степени тяжести, вы можете добавить:
npm audit --audit-level=moderate
Хотите вывести в формате json:
npm audit --json
Хотите вывести в формате html:
npm i -g npm-audit-html
npm audit --json | npm-audit-html
На самом деле здесь есть еще одна ловушка. Вышеупомянутый метод HTML доступен во многих местах, но весьма вероятно, что после его использования HTML будет выглядеть следующим образом:
таблица пуста: Причина здесь в следующем:
Итак, измените его на:
npm i -g npm-audit-html@beta
npm audit --json | npm-audit-html@beta --output report.html
Просканируйте свой проект на наличие уязвимостей и автоматически установите все совместимые обновления для уязвимых зависимостей:
npm audit fix
Запустите исправление аудита, не изменяя модули узла, но все равно обновите pkglock:
npm audit fix --package-lock-only
Пропустить обновления devDependency:
npm audit fix --only=prod
Используйте исправление аудита для установки SemVer-major для обновления зависимостей верхнего уровня вместо простого добавления SemVer-совместимого:
npm audit fix --force
Выполните пробный прогон, чтобы увидеть, что будет делать исправление аудита, и выведите информацию об установке в формате JSON:
npm audit fix --dry-run --json
Вот классический пример исправления аудита npm: https://www.jianshu.com/p/60591cfc6952