Где лучше хранить API-ключи в PHP, чтоб не сливать их случайно?
У меня много проектов на PHP, и постоянно мучаюсь с тем, как правильно хранить API-ключи. Писать их живьем в коде — слишком опасно, особенно если потом загружать репу на гитхаб или в продакшн.
Лично проверял, что держать ключи в отдельном конфиг-файле вне веб-доступа — норм. Например, .env или config.php, который не попадает в публичные папки и игнорится в git. Но есть нюанс: если проект на хостинге с удобным управлением, лучше туда ключи залить вне самой директории сайта.
Еще сейчас часто советуют использовать getenv() и .env-файлы. Это удобно для локалки и докера, но надо тщательно настроить права на файл и не забывать его не коммитить.
А кто что думает про хранение ключей сразу в базе данных? Мне кажется, это неплохо для динамических систем, но тогда нужен хороший доступ к БД и защита на уровне пользователя.
Плюс, если есть ключи для разных сред (dev, staging, prod) — лучше не смешивать, а держать в отдельных файлах/переменных. Примерно так у меня пока и работает.
Короче, не пишите в коде фиксированные ключи, а то могут вылезти через гит и креденшелды сольются. Как вы на больших проектах с этим боретесь?