В этом коротком сообщении рассказывается о том, как использование частного прокси-сервера npm помогает улучшить контроль и безопасность при использовании пакетов JavaScript в общем и npm в частности.

  • Хотите визуализировать зависимости вашего пакета?
  • Обеспечить соблюдение политик безопасности?
  • Управлять своей зависимостью от общедоступного реестра npm?

Прочтите, чтобы узнать, почему вам следует подумать о настройке и использовании прокси-сервера npm.

Заявление об ограничении ответственности: я изначально разместил расширенную версию этой статьи на bytesafe.dev 9 апреля 2020 г. Чтобы прочитать полную версию этой статьи с более подробными сведениями о преимуществах использования Bytesafe в качестве поставщика частного реестра, щелкните здесь

Почему прокси npm - хорошая идея

Миллионы разработчиков используют общедоступный реестр npm каждый день, и с его 1,3 миллионами пакетов он является важным активом в экосистеме JavaScript (недавние новости о том, что GitHub приобрел npm, Inc, только подчеркивают это).

Но с удобством общедоступного реестра npm и скоростью разработки, которую влекут за собой все эти доступные пакеты с открытым исходным кодом, есть недостатки для отслеживания и управления всеми этими зависимостями.

Поэтому принятие мер для улучшения контроля над зависимостями и общей безопасности при использовании npm является необходимостью для любой организации, которая хочет управлять своей цепочкой поставок кода (а не слепо доверять коду из Внешние источники).

И одна из первых вещей, которые обычно упоминаются для улучшения безопасности npm, - это использование прокси-сервера npm.

Контроль над зависимостями - как?

Есть несколько способов, которыми прокси-сервер npm обеспечивает лучший контроль зависимостей:

  • Центральный реестр: прокси-сервер npm действует как центральный реестр для всех необходимых версий пакетов. Частные и публичные вместе, возможно, из нескольких источников вверх по течению.
  • Визуализация зависимостей: наличие всех необходимых пакетов в одном месте позволяет выявить потенциальные проблемы. Кроме того, прокси кэширует ваши пакеты, избавляя от опасений, что основная версия пакета будет неопубликована в будущем.
  • Единый источник: все разработчики используют один и тот же реестр прокси-серверов, а все пользователи используют один и тот же источник и версии пакета. Устранение потенциальной проблемы бессознательного построения с разными версиями зависимости.

Повышенная безопасность - как?

Использование прокси-сервера npm позволяет разделить вашу организацию и внешний мир JavaScript.

  • Политики. прокси-сервер npm представляет собой важный уровень, на котором вы можете применять политики безопасности, необходимые вашей организации.
  • Соответствие лицензии: все зависимости в одном месте для проверки или поиска проблемных лицензий.
  • Сканирование безопасности: проверьте зависимости на предмет известных уязвимостей и проблем безопасности.

Использование Bytesafe в качестве прокси

Размещенные в Bytesafe частные реестры npm по умолчанию работают как прокси-серверы npm. Все, что требуется, - это настроенный восходящий поток в ваш реестр. Включение преимуществ прокси-сервера npm и дополнительных преимуществ, которые Bytesafe предлагает вашему рабочему процессу (кстати, Bytesafe доступен как бесплатная учетная запись).

При использовании Bytesafe разработчики настраивают свой npm client для взаимодействия с частным реестром Bytesafe вместо (по умолчанию) общедоступного реестра.

Поскольку клиент npm больше не связан напрямую с общедоступным реестром, это приводит к следующему рабочему процессу:

Разработчики публикуют / устанавливают версии пакетов в частный реестр Bytesafe и из него - без прямого взаимодействия с публичным реестром. Нет необходимости изменять какое-либо поведение или шаблоны использования. Использование штатных инструментов и клиентов.

Реестр прокси содержит все общедоступные и частные пакеты и все необходимые зависимости. Если требуется версия пакета, которой нет в реестре прокси, она извлекается из восходящего потока.

Реестры Upstreams предоставляют реестр прокси с версиями пакетов (при необходимости) и являются целью для отправки пакетов с прокси. Апстримы могут быть как одним, так и несколькими реестрами.

Резюме

Настройка и использование прокси-сервера npm - это простой и эффективный способ контролировать зависимости JavaScript и повышать безопасность при использовании npm. Не влияя на рабочий процесс разработчиков и не меняя его. Если ваша организация хочет контролировать и управлять цепочкой поставок кода, вам следует настроить прокси-сервер npm.

Bytesafe предлагает размещенные, частные, надежные и бесплатные частные реестры npm, которые помогают вашей организации / команде совместно работать над вашим кодом JavaScript. Кроме того, Bytesafe предлагает постоянно растущий список политик и подключаемых модулей, которые призваны упростить рабочий процесс JavaScript (например, замораживание состояний реестра, автоматическая пересылка версий пакетов в апстримы, сканирование безопасности и т. Д.)

Для получения дополнительной информации посетите Bytesafe.