Property-файлы vs Environment variable
Здравствуйте. В большинстве классических мануалов по фреймворкам(spring,hibernate и т.п.) крайне рекомендуют сохранять настройки подключения к базе в property файлах. Мне и самому это удобнее, чем прописывать их в дебрях xml-конфига. Некоторые современные хостинги, например heroku, предлагают вместо проперти файлов использовать системные переменные. Т.е. , например, строка подключения хранится в системной переменной MYSQL_DB и приложение при старте должно считать её.
В этом есть резон, потому что на машине разработчике можно прописать в адрес тестовой базы а на продакшен сервере будет прописана строка соединения с реальной базой.
Но, я был удивлен , что когда на одном из собеседований я указал, что использовал системные переменные вместо проперти-файлов, то это плохо. Недостатком этого способа является якобы низкая секьюрность, потому системную переменную легко может прочитать злоумышленник и получить прямой доступ к базе, но с другой стороны, как мне кажется, если у него есть доступ к системным переменным, то будет и доступ к файловой системе.
Поэтому хотелось бы спросить у сообщества - переменные окружения, это действительно более худший способ хранения настроек приложения, чем проперти-файлы, или все-таки нет.
Хотелось бы уточнить, что я не хочу все настройки хранить в переменных окружения, а только те, которые предоставляет провайдер - например параметры подключения к mysql или мемкешу. Фактически я даже их не создаю, они автоматически прописываются, когда я активирую у провайдера услугу mysql или мемкэш.
В этом есть резон, потому что на машине разработчике можно прописать в адрес тестовой базы а на продакшен сервере будет прописана строка соединения с реальной базой.
Но, я был удивлен , что когда на одном из собеседований я указал, что использовал системные переменные вместо проперти-файлов, то это плохо. Недостатком этого способа является якобы низкая секьюрность, потому системную переменную легко может прочитать злоумышленник и получить прямой доступ к базе, но с другой стороны, как мне кажется, если у него есть доступ к системным переменным, то будет и доступ к файловой системе.
Поэтому хотелось бы спросить у сообщества - переменные окружения, это действительно более худший способ хранения настроек приложения, чем проперти-файлы, или все-таки нет.
Хотелось бы уточнить, что я не хочу все настройки хранить в переменных окружения, а только те, которые предоставляет провайдер - например параметры подключения к mysql или мемкешу. Фактически я даже их не создаю, они автоматически прописываются, когда я активирую у провайдера услугу mysql или мемкэш.
