предисловие
когда мыnpm install
При установке зависимостей проекта вы часто видите предупреждение об уязвимости, показанное на рисунке ниже.
анализировать проблему
Мы видим подсказку на картинке выше, что ее можно использоватьnpm audit fix
решить проблему, тоnpm audit
Для чего это? зачем проходитьnpm audit fix
может решить проблему. пойдем быстроnpm
Официальный сайт для проверки волны.
Введение на официальном сайте:
npm audit
Позволяет разработчикам анализировать сложный код и выявлять конкретные уязвимости и недостатки.
npm audit fix
Выявляйте уязвимости в зависимостях проекта и автоматически устанавливайте уязвимые зависимости, которые необходимо обновить, вместо того, чтобы отслеживать и исправлять их самостоятельно.
Конечно, есть и другие команды:
# 只更新 package-lock.json, 不更新 node_modules
npm audit fix --package-lock-only
# 不更新开发依赖即 devDependencies
npm audit fix --only=prod
# 更新到最新的依赖, 而不是仅仅更新到兼容的依赖
npm audit fix --force
# 空运行一次审核修复,了解修复的作用, 并且以 json 的格式输出结果
npm audit fix --dry-run --json
Есть также некоторые команды, пожалуйста, проверьте их самиДокументация.
то мы знаем, что это путем анализаpackage-lock.json
Файл, затем просканируйте наш пакет, чтобы проанализировать, содержит ли он уязвимости, то есть ли способ не дать ему просканировать?
Решать проблему
После того, как вы нашли проблему, моя первая реакция не отключается путем настройки этого анализа (первая реакция гангстера может заключаться в том, как ее решить).
Посмотрев на документацию, которую мы нашлиnpm audit
Его можно отключить в настройках. Итак, давайте сначала посмотрим, что представляют собой наши конфигурации и какая конфигурация используется для управления функцией анализа.
# 执行下面的命令输出我们的 npm config
npm config ls -l
Вы можете видеть, что будет выведено много конфигураций по умолчанию, а функция анализа аудита создаетсяaudit = true
контролируется этим свойством.
мы также можем видетьaudit-level = "low"
контролировать уровень опасности уязвимости.
Затем мы можем реализовать функцию закрытия аудиторского анализа, изменив эти конфигурации.
# 将 audit 设置成 false 关闭分析功能
npm set audit false
# 设置分析漏洞危险等级,有4个选项: 'low(低)', 'moderate(中等)', 'high(高危)', 'critical(紧要)'
npm set audit-level high
Что ж, в мире тихо, и сообщений об уязвимостях больше не будет~~~~
Однако некоторые друзья будут переживать, что мой проект имеет лазейку и действительно подвергается атаке (хотя я думаю, что вероятность очень мала), что мне делать?
Тогда просто сделай это честноnpm audit fix
починить это.
Некоторые друзья скажут, что я до сих пор не починил его после казни, в чем причина?
почемуnpm audit fix
До сих пор не отремонтирован
Это потому, что не все зависимости доступны черезnpm
команда обновления для устранения уязвимости.
Например, некоторые пакетыnode-gyp
сторонние зависимости, они не могут быть переданыnpm
Команды для изменения можно исправить только вручную.
существуетnode_modules > node_gyp > package.json
Найдите пакет для обновления и измените его вручную.package.json
Версия пакета, модифицированная до последней версии. затем бегиnpm audit fix
Вот и все.