Cli: [ВОПРОС] --ignore-scripts только в целях безопасности?

Созданный на 29 нояб. 2019  ·  4Комментарии  ·  Источник: npm/cli

Во многих местах рекомендуют устанавливать сценарии игнорирования для глобальной конфигурации в целях безопасности.
Это сделано для предотвращения выполнения произвольного кода сторонними пакетами.

Проблема в том, что установка этого параметра не привела к запуску скриптов, в том числе из npm run ...
Я также не вижу предупреждений при выполнении npm run ... с включенными сценариями игнорирования.

Есть ли способ игнорировать скрипты исключительно из соображений безопасности?

Question

Все 4 Комментарий

Как npm будет различать безопасные и небезопасные скрипты?

Если бы он мог это сделать, почему бы потребовалась настройка, чтобы игнорировать небезопасные?

Он не делает различий между безопасными и небезопасными скриптами.
Это просто разрешило бы сценарии при использовании команды npm в верхнем модуле.
Поскольку владелец не является третьей стороной, можно предположить, что ему доверяют.

Попался, в этом есть смысл. Я никогда не устанавливал это как глобальную настройку конфигурации, но нарушение npm run было бы довольно неприятным.

Я установил для ignore-scripts значение true и был разочарован, обнаружив, что npm start в моем проекте полностью перестал работать без каких-либо выходных данных.

Я бы хотел защитить сценарии игнорирования, в частности, отключить сценарии после установки, но иметь возможность выполнять свои собственные сценарии и сценарии сторонних разработчиков, только явно с npm start или npm run. Необходимость добавлять --ignore-scripts каждый раз, когда я хочу добавить пакет, довольно хрупкая, потому что все, что нужно, - это забыть об этом всего один раз, и вы можете быть незаметно скомпрометированы глубоко скрытой сторонней зависимостью.

В целом я твердо верю, что поведение npm cli по умолчанию опасно и его нужно так или иначе изменить. Например, npm может запрашивать меня перед выполнением любого скрипта, если он явно не запрошен или не внесен в белый список.

Мой работодатель не желает вводить npm в стек с текущим поведением, поэтому мой единственный вариант сейчас, похоже, полагается на установку флага ignore-scripts на каждой рабочей станции.

Кроме того, я хотел бы отметить, что я знаю, что добавление зависимости имеет более широкие последствия для безопасности, чем скрипты, но скрипты, на мой взгляд, особенно опасны по нескольким причинам. Наличие вредоносного пакета в вашем проекте - это так же плохо, как может показаться, но, по крайней мере, может пройти еще некоторое время, прежде чем он сможет выполнить свою полезную нагрузку, поэтому есть небольшая надежда, что его можно будет вовремя поймать. Кроме того, разработчики с большей вероятностью увидят дополнительную выборку в devtools или что-то в этом роде при отладке своего кода по сравнению с полезной нагрузкой, работающей непосредственно на их компьютерах и скрывающей следы. Один проект с вредоносным пакетом потенциально может поставить под угрозу всю IP-адрес компании, даже не имеющую отношения к проекту. Трудно определить источник проблемы или даже обнаружить ее вообще.

Извините, если я поддерживаю эту конкретную проблему с моими параноидальными мыслями, но я думаю, что сопровождающие npm и сообщество должны серьезно поговорить на эту тему. Возможно, начните думать о том, как JavaScript и npm вписываются в такие вещи, как Bytecode Alliance .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги