Однако внутри файлов проекта есть мой 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 не должны использоваться для сообщения об уязвимостях безопасности, потому что это сделает их видимыми для всех.