Как исправить пакеты аудита npm, требующие ручной проверки

Недавно я отправил обновление нашего сайта на наш сервер, что каким-то образом привело к его заражению и повреждению множества наших файлов, к тому, что пользователи начали перенаправляться на случайные сайты и т. Д. Очевидно, это было вызвано одной из наших зависимостей. Я использую npm для управления зависимостями нашего сайта и недавно узнал об аудите npm. Всякий раз, когда я запускаю аудит npm, есть 15 уязвимостей, которые требуют проверки вручную, и я пытался их исправить, обновившись до версий, предложенных в разделе дополнительной информации в каждом отчете, но эта уязвимость сохраняется, когда я запускаю аудит npm. Я попытался обновить версию в соответствующих пакетах в разделе пути отчета, и она все еще сохраняется, когда я запускаю аудит npm. Я, очевидно, не хочу снова загружать файлы с уязвимостями и разрушать все сайты на нашем сервере, я просто очень не уверен, как исправить эти уязвимости безопасности, которые возникают при проверке npm.

Например, вот единственный отчет о высоком риске в отчете:

Высокий │ Регулярное выражение Отказ в обслуживании
Пакет │ жесткое печенье
Исправлено в in>=2.3.3
Зависимость │ gulp-uncss [dev]
Путь │ gulp-uncss > uncss > request > tough-cookie
Дополнительная информация │ https://nodesecurity.io/advisories/525

Когда я обновляю пакет до>=2.3.3 в моем package.json, а также в запросе, а затем запускаю npm audit, уязвимость все еще сохраняется. Любая идея, как это исправить / исправить уязвимость?

0 ответов

Может быть поздно, но лучше, чем никогда. Я просто новичок с более чем 2 годами работы в области nodejs и тоже встречал много предупреждений аудита, и вот как я справляюсь с этими уязвимостями, которые требуют ручного анализа.

Во-первых, вы должны понимать, что эта уязвимость требует ручной проверки не той версии пакетов, которую вы устанавливаете и вызываете непосредственно в своем коде. Они происходят из-за вызова зависимости этого пакета. В вашей ситуации вы используете пакет "gulp-uncss", а внутри кода "gulp-uncss" он вызывает другую зависимость самого себя с именем "tough-cookie". Устанавливаемый вами пакет сам управляет зависимостями, на которые не влияет обновление более новой или более старой версии зависимости. Вы можете обновить пакет "tough-cookie" до>= 2.3.3, но "gulp-uncss" всегда будет вызывать "tough-cookie" с версией < 2.3.3.

Итак, у вас есть два варианта того, что вы можете сделать:

  • Сбросьте этот пакет и используйте другой с аналогичной задачей и без уязвимостей.
  • Разветвите репо этого пакета, внесите изменения и создайте запрос на перенос, дождитесь принятия запроса на перенос, и вы сможете использовать этот пакет без уязвимостей после обновления новой версии, адаптированной с помощью запроса на перенос, который вы делаете
Другие вопросы по тегам