Рубрики
Uncategorized

NPM: более безопасная канарейка

Публикация Canary Versions поставляется с некоторыми рисками безопасности. Если ваш проект частный у вас нет … Теги с DevOps, Opensource, Git, Github.

Публикация Canary Versions поставляется с некоторыми рисками безопасности. Если ваш проект является частным, вам не о чем беспокоиться, но если ваш проект является открытым исходным кодом, есть некоторые отверстия безопасности.

Canary Version — это тестовая версия, излучаемая для изменения других пользователей, которые могут использовать для тестирования.

Векторы атаки

В зависимости от платформы сборки вы сможете пройти секреты PR сборки для разветвленных репо. Хотя это делает разработчик опыт вашего проекта приятно, в Авто Дело в публикации Canary Versions, он обнажает ваши ключи.

Злоумышленник может:

  1. Печать секретов
  2. Отправить секреты на некоторое сервер
  3. модифицировать Авто публиковать на последний тег вместо канарейка

Никакое количество кода не может исправить эти проблемы. Если ваши клавиши релиза находятся в каждом, CI, создает злоумышленник, может сделать любое количество вещей, чтобы изменить то, что вы намереваетесь для Авто делать (или любой другой метод выпуска в CI).

Решение

Решение для этого на самом деле довольно просто:

  1. Создайте тестовый объем, который вы публикуете канарские камне (например, @ Auto-Canary или @ Auto-test )
  2. Создать пользователь, который имеет только доступ к этой области
  3. Установите по умолчанию NPM_Token в токен, который может опубликовать этот объем (это используется для любого запроса на тягу)
  4. Настройте Безопасный Токен, который доступно только на главной вилке (все еще называемом NPM_Token )

Шаг 3 может быть невозможен на платформе сборки.

Ниже приведены способы Авто Команда знает, как это сделать. Если вы не видите метод для создания платформы, пожалуйста, сообщите нам об этом!

  • Circleci Контекст — Контексты предоставляют механизм обеспечения и совместного использования переменных среды по всему проектам. Переменные среды определяются как пары имени/значения и вводятся во время выполнения.

использование

Чтобы использовать этот рабочий поток в Авто , поставьте следующую конфигурацию к NPM плагин.

{
  "plugins": [
    [
      "npm",
      {
        "canaryScope": "@auto-canary"
      }
    ]
  ]
}

Теперь, когда люди делают потянутые запросы на ваши репос:

  1. Ваш CI может запустить Автообкат
  2. Канарские версии будут опубликованы под вашим канарский

Эта функция была добавлена в auto@v8.1.0

Оригинал: «https://dev.to/hipstersmoothie/npm-more-secure-canary-publishing-4j7l»