Где нормально держать API-ключи в PHP, чтобы не светить в репе
Судя по всему, хранить ключи прямо в коде — самая частая ошибка. Если проект в гите, и вдруг забываешь .gitignore, привет компрометация. Лично я обычно кладу все секреты в отдельный .env-файл и читаю через библиотеку типа vlucas/phpdotenv — так можно не трогать основной код и спокойно менять настройки на сервере. Главное — не втыкать .env в гит.
Еще вариант — переменные окружения на сервере. Тогда в коде вообще никаких ключей, только getenv('API_KEY'). Это классно, если проект на хостинге с нормальной панелью или Docker.
Важно проверить, что эти файлы не лезут в публичную часть сайта. Часто проблемы возникают, если config.php с ключом лежит в папке, доступной через веб.
Пробовал еще шифровать ключи, но это уже для более серьезных задач, где нужен повышенный уровень защиты и есть место для хранения ключа шифрования. Для повседневной задачки .env + правильный .gitignore оптимально.
А у кого какие варианты? Кто что лучше юзает для безопасности конфигов?