Использование переменных окружения в конфигах Symfony2

В слайдах презентации Фабьена “PhpBB meets Symfony2” увидел интересный момент:

В этом примере мы задаем пароль к БД в переменной окружения веб-сервера и потом можем получить его в конфиге как “%doctrine.dbal.password%”.
Я проверил на практике — работает (все таки презентация довольно старая).

Хочу немного рассказать о том зачем и почему такой способ передачи секретной информации удобен.


Например у нас есть популярный проект, который работает с сторонним API. В конфигах приложения хранится ключ для доступа к этому API. Допустим, что информация предоставляемая этим API закрытая (секретная/платная). Получается, что любой у кого есть доступ к хранилищу кода получает доступ к закрытой информации. А дальше ситуации могут быть разные: этот ключ попал в руки недобросовестного разработчика, злоумышленники каким-то образом получили доступ к исходникам и т.д.

Чтобы избежать этих рисков нужно отказаться от хранения такой информации в исходниках приложения. В своей практике мы использовали немного другой подход, но способ предложенный Фабьеном мне тоже понравился. Можно задать нужные данные в переменных окружения прописав их в конфигах веб-сервера (apache/nginx/etc) для определенного хоста и спать спокойней.

PROFIT :)

2 thoughts on “Использование переменных окружения в конфигах Symfony2

  1. parameters.ini, который не под репозиторием (.hgignore) решает

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>