Перейти до основного змісту
Версія: Next

pnpm audit

Перевіряє наявність відомих проблем безпеки у встановлених пакунках.

Якщо виявлено проблеми з безпекою, спробуйте оновити залежності за допомогою pnpm update. Якщо звичайне оновлення не може виправити всі проблеми, використайте перевизначення, для примусового встановлення версій, які не є вразливими. Наприклад, якщо бібліотека lodash@<2.1.0 є вразливою, скористайтеся цим перевизначенням для встановлення lodash@^2.1.0:

pnpm-workspace.yaml
overrides:
"lodash@<2.1.0": "^2.1.0"

Або, запустіть pnpm audit --fix.

Якщо ви хочете проігнорувати деякі вразливості, оскільки вони не впливають на ваш проєкт, ви можете скористатися параметром auditConfig.ignoreGhsas.

Починаючи з версії v11, pnpm audit запитує точку доступу реєстру /-/npm/v1/security/advisories/bulk. Відповідь не містить ідентифікаторів CVE, тому повідомлення фільтруються за ідентифікатором повідомлення GitHub (GHSA). Якщо раніше ви вказали CVE у розділі auditConfig.ignoreCves, замініть кожен запис на відповідне значення GHSA-xxxx-xxxx-xxxx (вказане у стовпці Додаткова інформація у вихідних даних pnpm audit) у розділі auditConfig.ignoreGhsas.

Команди

signatures

Додано у: v11.1.0

pnpm audit signatures

Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at /-/npm/v1/keys. Scoped registries configured via registries are respected; registries that don't publish signing keys are skipped.

The command exits with code 1 if any package has an invalid signature, or if a registry advertises signing keys but a package was published without a signature. Combine with --json to get machine-readable output.

Параметри

--audit-level <рівень>

  • Рівні: low, moderate, high, critical
  • Стандартно: low

Друкує лише ті повідомлення, рівень яких вищий або дорівнює вказаному у параметрі <рівень>.

Це також можна встановити за допомогою auditLevel у 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.

Налаштування

auditConfig

auditConfig.ignoreGhsas

Список кодів GHSA, які буде проігноровано командою pnpm audit.

auditConfig:
ignoreGhsas:
- GHSA-42xw-2xvc-qx8m
- GHSA-4w2v-q235-vp99
- GHSA-cph5-m8f7-6c5x
- GHSA-vh95-rmgr-6w4m

До версії v11 параметр auditConfig.ignoreCves використовувався для фільтрації повідомлень за ідентифікатором CVE. Цей параметр більше не використовується.