Безопасный общий конфигурационный файл для веб-приложения

Я хотел бы сохранить все параметры конфигурации для веб-приложения в одном файле. (пути, пароли, опции, которые читаются php, sass (во время компиляции), может быть, хрюкать, ..)

Мне нравится формат JSON, потому что он очень чистый, и почти все может анализировать JSON. Но по умолчанию .json файлы могут быть загружены.

Могу ли я безопасно предотвратить это, дав файлу .json.php расширение?

Какие недостатки? Лучшие подходы?

0

Решение

Чтобы предотвратить загрузку файла, обычно нужно сохранить его в каталоге, который не обслуживается веб-сервером. Я не знаю, в какой настройке вы находитесь, но при условии установки Apache, если, например, ваш .php файлы обслуживаются из каталога /home/user/htdocs, вы можете создать каталог /home/user/configубедитесь, что он доступен для чтения веб-сервером, и сохраните .json файлы там.

Другой подход, опять-таки при условии, что Apache, будет создавать .htaccess файл, содержащий следующее (вдохновлено этот ответ):

RedirectMatch 404 \.json$

Это не только предотвратит загрузку любого и всех .json файлы в каталоге, но скрывают само их существование.

Это может просто можно сделать так, как вы предложили, сохраняя файл с .json.php расширение, хотя это не будет рекомендуемым подходом. Чтобы это работало, файл должен быть действительным PHP, но он также должен быть действительным JSON, и нам несколько мешает тот факт, что JSON не допускает комментарии. Что-то вроде следующего остановит интерпретатор PHP вскоре после запуска файла, прежде чем раскрыть ваши секреты:

{
"<?php exit('Access denied'); ?>": null,
"password": "secret"}
2

Другие решения

Других решений пока нет …