Публикация Canary Versions поставляется с некоторыми рисками безопасности. Если ваш проект является частным, вам не о чем беспокоиться, но если ваш проект является открытым исходным кодом, есть некоторые отверстия безопасности.
Canary Version — это тестовая версия, излучаемая для изменения других пользователей, которые могут использовать для тестирования.
Векторы атаки
В зависимости от платформы сборки вы сможете пройти секреты PR сборки для разветвленных репо. Хотя это делает разработчик опыт вашего проекта приятно, в Авто
Дело в публикации Canary Versions, он обнажает ваши ключи.
Злоумышленник может:
- Печать секретов
- Отправить секреты на некоторое сервер
- модифицировать
Авто
публиковать на последний тег вместоканарейка
Никакое количество кода не может исправить эти проблемы. Если ваши клавиши релиза находятся в каждом, CI, создает злоумышленник, может сделать любое количество вещей, чтобы изменить то, что вы намереваетесь для Авто
делать (или любой другой метод выпуска в CI).
Решение
Решение для этого на самом деле довольно просто:
- Создайте тестовый объем, который вы публикуете канарские камне (например,
@ Auto-Canary
или@ Auto-test
) - Создать пользователь, который имеет только доступ к этой области
- Установите по умолчанию
NPM_Token
в токен, который может опубликовать этот объем (это используется для любого запроса на тягу) - Настройте
Безопасный
Токен, который доступно только на главной вилке (все еще называемомNPM_Token
)
Шаг 3 может быть невозможен на платформе сборки.
Ниже приведены способы Авто
Команда знает, как это сделать. Если вы не видите метод для создания платформы, пожалуйста, сообщите нам об этом!
- Circleci Контекст — Контексты предоставляют механизм обеспечения и совместного использования переменных среды по всему проектам. Переменные среды определяются как пары имени/значения и вводятся во время выполнения.
использование
Чтобы использовать этот рабочий поток в Авто
, поставьте следующую конфигурацию к NPM
плагин.
{ "plugins": [ [ "npm", { "canaryScope": "@auto-canary" } ] ] }
Теперь, когда люди делают потянутые запросы на ваши репос:
- Ваш CI может запустить
Автообкат
- Канарские версии будут опубликованы под вашим
канарский
Эта функция была добавлена в auto@v8.1.0
Оригинал: «https://dev.to/hipstersmoothie/npm-more-secure-canary-publishing-4j7l»