npm 12 отключает скрипты установки по умолчанию, что существенно повышает безопасность сборки проектов. Это решение было принято GitHub для снижения рисков цепочки поставок и защиты разработчиков от потенциальных атак.
Изменения в npm 12
С новой версией npm все поведения установки, которые раньше выполнялись автоматически, теперь требуют явного разрешения. В частности, флаги allowScripts, allow-git и allow-remote по умолчанию выставлены в off или none. Это значит, что скрипты жизненного цикла зависимостей, а также зависимости из Git и удалённых URL больше не будут разрешены без явного согласия разработчика.
Для управления разрешёнными скриптами пользователям необходимо запускать команду npm approve-scripts --allow-scripts-pending и затем коммитить полученный список разрешений в файл package.json. Это должно снизить риски выполнения вредоносного кода во время установки пакетов.
Контекст изменений
Данные изменения были анонсированы в начале июля 2026 года, и GitHub рекомендует разработчикам обновиться до версии npm 11.16.0 или новее. Кроме того, больше не будут функционировать токены доступа, которые обходят двухфакторную аутентификацию (2FA) — данный шаг также направлен на защиту аккаунтов пользователей от несанкционированного доступа.
Сейчас, если пользователи будут пытаться выполнять действия, требующие 2FA, они должны делать это вручную, что значительно увеличивает уровень безопасности при управлении учётной записью и проектами.
Почему это важно для разработчиков
Для разработчиков в России и СНГ эта обновлённая версия npm является важным шагом к повышению безопасности проектных зависимостей. С учётом роста киберугроз, внедрение таких мер может защитить как большие команды, так и независимых разработчиков от возможных атак через уязвимые пакеты.
Согласно отчёту компании Socket, подобные меры по ограничению доступа к токенам и скриптам могут существенно снизить шансы успешного внедрения вредоносных кодов в проекты. Поэтому всем разработчикам стоит учесть эти изменения при настройке своих рабочих процессов.
Следующий значимый шаг — внедрение нового подхода к управлению безопасностью в npm, который ожидается в начале 2027 года. Это поможет ещё больше укрепить безопасность экосистемы Node.js.