Как найти и убрать секреты, закоммиченные в Git-репозиторий
Почему это важно
API-ключ или пароль в исходниках видит каждый, кто может склонировать репозиторий, а у публичного — боты, которые сканируют GitHub на ключи в течение минут после push. Удалить строку мало: значение остаётся в истории, пока ключ не перевыпущен.
Как исправить
Что сделать: Перенесите все секреты в переменные окружения и читайте их через
Добавьте
os.environ.# ПЛОХО — секрет в коде:
DATABASE_URL = "postgresql://user:s3cr3t@localhost/db"
SECRET_KEY = "hardcoded-key-123"
# ХОРОШО — из переменных окружения:
import os
DATABASE_URL = os.environ["DATABASE_URL"]
SECRET_KEY = os.environ["SECRET_KEY"]
Добавьте
.env в .gitignore и создайте .env.example с примерами.Проходит ли эту проверку ваш репозиторий?
Бесплатно для публичных репозиториев GitHub, без регистрации. До 58 проверок DevOps и безопасности примерно за 5 секунд.
Похожие проверки
- Почему .env должен быть в .gitignore (и как проверить, что он уже не закоммичен)
- Файл .env закоммичен в репозиторий: что делать
- Автообновление зависимостей: Dependabot или Renovate
- Как закрепить GitHub Actions на commit SHA
- Минимальные права GITHUB_TOKEN в workflow
- Ловушка pull_request_target в GitHub Actions