Хранение переменных конфигурации в XML-файле на PHP-сайте под корнем сайта слишком рискованно? - PullRequest
2 голосов
/ 03 марта 2009

Я заметил, что Magento хранит сведения о соединении MySQL в файле XML, который не защищен выше docroot. Это кажется .... очень опасным.

XML кажется удобным способом хранения данных конфигурации, за исключением одной вещи, набрав http://www.domain.com.au/library/config.xml, покажет миру ваши личные данные!

Я использовал XMl-файл и добавил его в мой файл .htaccess.

<Files ~ "\.xml$"> // regex files that end with xml extension
Order allow,deny 
Deny from all // don't show them
</Files>

Теперь я был доволен этим, теперь я не слишком уверен. Что если файл .htaccess был случайно удален / поврежден (происходит ли это, помимо человеческой ошибки), и что если однажды я захочу разместить приложение на сервере, отличном от apache ... у каждого сервера есть эквивалент блочных файлов XML, и если они это сделают, могут ли они быть изменены на уровне папок, как это может сделать .htaccess (а не только файл httpd.conf).

У меня такой вопрос ... перевешивает ли удобство XML (простое обновление, дизайнеры, которому нужно повозиться, не так страшно) перевешивают потенциальные проблемы (раскрытие личных данных)?

Ответы [ 3 ]

1 голос
/ 03 марта 2009

Лично я храню информацию о конфигурационном файле только в формате, который недоступен в напрямую доступном формате или месте. Поэтому я бы либо использовал формат XML над документом, либо использовал формат PHP $ config ['varname'] = 'value'. Более поздний метод просто отображает пустую белую страницу, если вызывается напрямую (при условии, что он весь PHP, не содержит HTML и не выводится).

Gallery, vBulletin и Joomla используют второй метод, который я упомянул. Я знаю, что упоминал об этих проектах ранее в других вопросах, связанных с PHP, но, похоже, это метод, который широко используется и принимается между проектами.

0 голосов
/ 03 марта 2009

Я полностью согласен с Inventix по этому вопросу, но также предлагаю третий вариант, который должен сочетаться с

имя файла с информацией о конфигурации

.htanything.whatever

как сервер, все файлы, начиная с .ht, не читаются внешними пользователями {Вот почему htaccess всегда .htaccess}

personaly. Я храню только файлы конфигурации и библиотеки функций за пределами корня документа, но понимаю, что некоторые connot, таким образом, всегда используют соглашение .htnaming для них, в то время как папка $ include должна перемещаться в дереве документа кем-то, программное обеспечение на таком сервере

0 голосов
/ 03 марта 2009

Краткий ответ, нет это не так. Но вопрос получше. Если он не хранится в конфигурационном файле, где бы вы его хранили?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...