Парни, всем привет. Появилась необходимость хранить API-ключи в проекте на PHP и задумался, как это сделать нормально. Просто прописывать их прямо в коде — отстой, особенно если репозиторий общий. Вот что на практике встречал и юзал:
1. ENV-файлы + getenv() — просто, работает, ключи не в репе. Норм, но можно забыть добавить в .gitignore и лампочка тухнет.
2. Конфиги вне веб-директории — файлы с ключами лежат вне public_html, сам код читает. Плюс в том, что на уровне веб-сервера к ним нет доступа.
3. Хранить в базе, зашифровав — вариант для тех, кто запускает много сервисов и ключи меняются часто. Минус — реализация усложняется.
4. Использовать менеджеры секретов типа Vault — пока мало кто на практике заморачивается, но для серьезных проектов норм.
5. Если деплой на облако — секреты через соответствующие сервисы CI/CD или переменные окружения.
Мой опыт — ENV с .gitignore + отдельный конфиг вне публичной папки. Комфортно и просто. Но все равно всегда есть небольшой риск, если случайно где-то завезти ключи в репу. Кто как обычно за этим следит? Какие фишки используете?