pnpm audit
Перевіряє наявність відомих проблем безпеки у встановлених пакунках.
Якщо виявлено проблеми з безпекою, спробуйте оновити залежності за допомогою pnpm update. Якщо звичайне оновлення не може виправити всі проблеми, використайте перевизначення, для примусового встановлення версій, які не є вразливими. Наприклад, якщо бібліотека lodash@<2.1.0 є вразливою, скористайтеся цим перевизначенням для встановлення lodash@^2.1.0:
overrides:
"lodash@<2.1.0": "^2.1.0"
Або, запустіть pnpm audit --fix.
Якщо ви бажаєте проігнорувати деякі вразливості, оскільки вони не впливають на ваш проєкт, ви можете скористатися налаштуванням audit.ignore.
Починаючи з версії v11, pnpm audit запитує точку доступу реєстру /-/npm/v1/security/advisories/bulk. Відповідь не містить ідентифікаторів CVE, тому повідомлення фільтруються за ідентифікатором повідомлення GitHub (GHSA). Якщо раніше ви вказали CVE у розділі auditConfig.ignoreCves, замініть кожен запис на відповідне значення GHSA-xxxx-xxxx-xxxx (вказане у стовпці Додаткова інформація у результатах команди pnpm audit) у розділі audit.ignore.
Команди#
signatures#
Додано у: v11.1.0
pnpm audit signatures
Перевіряє підписи реєстру ECDSA для встановлених пакунків відповідно до публічних ключів, опублікованих кожним реєстром за адресою /-/npm/v1/keys. Реєстри з обмеженою видимістю, налаштовані через registries, враховуються; реєстри, які не публікують ключі підпису, пропускаються.
Команда завершує роботу з кодом помилки 1, якщо будь-який пакунок має недійсний підпис, або якщо реєстр оголошує наявність ключів підпису, але пакунок був опублікований без підпису. Використовуйте разом із --json, щоб отримати вихідні дані у форматі, придатному для машинного зчитування.
Параметри#
--audit-level <рівень>#
- Рівні: low, moderate, high, critical
- Стандартно: low
Друкує лише ті повідомлення, рівень яких вищий або дорівнює вказаному у параметрі <рівень>.
Це також можна встановити за допомогою audit.Level у pnpm-workspace.yaml.
--fix#
Додає перевизначення до файлу pnpm-workspace.yaml для примусової заміни версій залежностей на безпечні.
Використовуйте --fix=update (додано у v11.0.0) для виправлення вразливостей шляхом оновлення пакунків у файлі блокування замість додавання перевизначень.
Якщо встановлено значення minimumReleaseAge, опція --fix також додає мінімальну виправлену версію кожного повідомлення про вразливість до minimumReleaseAgeExclude у файлі settings.md#minimumreleaseage, завдяки чому виправлення безпеки можна встановити, не чекаючи закінчення вікна випуску.
--interactive, -i#
Додано у: v11.0.0
Перегляньте повідомлення, відібрані з --fix, і виберіть ті, які потрібно застосувати. Використовується тільки разом з --fix.
--json#
Виводить на екран результат перевірки у форматі JSON.
--dev, -D#
Перевіряє лише dev залежності.
--prod, -P#
Перевіряє лише production залежності.
--no-optional#
Не перевіряє optionalDependencies.
--ignore-registry-errors#
Якщо реєстр повертає код статусу, відмінний від 200, процес повинен завершитися з 0. Таким чином, процес завершиться невдачею лише у випадку, якщо реєстр успішно відповість і знайде вразливості.
--ignore-unfixable#
Додано у: v10.11.0
Ігноруйте всі повідомлення, для яких не знайдено вирішення.
Починаючи з версії v11, повідомлення про невиправні помилки відстежуються GHSA, а не CVE.
--ignore <vulnerability>#
Додано у: v10.11.0
Ігнорувати вразливість за її ідентифікатором повідомлення на GitHub (GHSA). До версії v11 цей прапорець приймав ідентифікатори CVE.
Налаштування#
pnpm audit налаштовується в розділі audit файлу pnpm-workspace.yaml (додано у версії 11.16.0):
audit:
level: high
ignore:
- GHSA-42xw-2xvc-qx8m
audit.level#
- Стандартно: low
- Рівні: low, moderate, high, critical
Виводити на екран лише попередження, рівень серйозності яких дорівнює або перевищує цей рівень. Те саме, що й прапорець --audit-level.
audit.ignore#
Список кодів GHSA, які будуть проігноровані командою pnpm audit.
audit:
ignore:
- GHSA-42xw-2xvc-qx8m
- GHSA-4w2v-q235-vp99
- GHSA-cph5-m8f7-6c5x
- GHSA-vh95-rmgr-6w4m
інформація
До версії 11.16.0 ці параметри мали назви auditLevel та auditConfig.ignoreGhsas. Застарілі імена продовжують працювати до виходу наступної основної версії; якщо задано обидва параметри, пріоритет має розділ audit, і виводиться попередження.
До версії v11 параметр auditConfig.ignoreCves використовувався для фільтрації повідомлень за ідентифікатором CVE. Цей параметр більше не використовується.