Совместное использование проекта Github без обмена API-ключ - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу поделиться своим проектом на GitHub с другими людьми, чтобы они могли просмотреть мой код.

Однако внутри файлов проекта есть мой API-ключ, который будет виден каждому.

  • Будет ли это проблемой?
  • Есть ли способ скрыть API-ключ?
  • Что-нибудь еще, что я должен знать о совместном использовании проектов?

Ценю любые советы или предложения.

1 Ответ

0 голосов
/ 21 февраля 2019

Однако внутри файлов проекта есть мой API-ключ, который будет виден каждому.

Да, они будут видны всем, и их никогда не следует размещать вВаш код.

Будет ли это проблемой?

  • Будет ли это проблемой?

Проблема с секретамиВ вашем коде жестко запрограммировано, что они могут быть случайно обнаружены в git коммитах из любого репозитория, который вы размещаете в сети.Хакеры прослушивают в конечной точке Github API /events и сразу же сканируют любые коммиты, которые запрашивают секреты, и в течение нескольких минут они могут использовать ваши секреты для доступа к любым сторонним сервисам от вашего имени, и тогда вы можете получитьРассказать, как знаменитая Моя ошибка Amazon EC2 за 2375 долларов .

Все это и немного больше можно найти в недавней статье, которую я написал, которую можно найти здесь :

Вот несколько примеров мест, гдераскрытие API Ключи, токены, пароли, облачные учетные данные и другие секреты были обнаружены:

  • В коде, предназначенном для github, gitlab и других онлайн-хранилищ кода.
  • В CI конвейеры и средства автоматизации в облаке.
  • При копировании кода вставки в такие места, как Stackoverflow, Форумы, средства отслеживания проблем и т. Д.

Есть ли способ скрытьAPI-ключ?

  • Есть ли способ скрыть API-ключ?

Хорошо, чтобы скрыть его от исходного кода, который вы только чтонеобходимо использовать переменные окружения, и обычно языки программирования поддерживают их, и наиболее распространенный подход - это поместить их в файл .env в корне вашего проекта.Помните, что этот файл .env должен быть добавлен в файл .gitignore, чтобы предотвратить утечку секретов в хранилище кода.

В производственном развертывании можно добиться дополнительных улучшений, используя хранилища для предоставления секретов.Ваш код, например, с помощью проекта Hashicorp Vault на Github:

Vault - это инструмент для безопасного доступа к секретам.Секрет - это все, к чему вы хотите строго контролировать доступ, например, ключи API, пароли, сертификаты и многое другое.Vault предоставляет единый интерфейс для любого секрета, обеспечивая строгий контроль доступа и запись подробного журнала аудита.

Что-нибудь еще, что я должен знать о совместном использовании проектов?

  • Что-нибудь еще, что я должен знать о совместном использовании проектов?

Люди всегда могут легко связаться с вами, чтобы сообщить о проблемах безопасности в вашем проекте, предоставив электронное письмов форме security@yourdomain.com или поместив ваш обработчик Twitter в README и попросив их связаться с вами через личные сообщения, но не забудьте оставить личные сообщения открытыми для любого пользователя Twitter, иначе они не смогут отправить его вам.

Вы также должны упомянуть в README, что проблемы Github не должны использоваться для сообщения об уязвимостях безопасности, потому что это сделает их видимыми для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...