Почему settings.php находится в веб-папке?

8

При установке по умолчанию файл settings.php находится по адресу sites/default/. На официальном сайте Drupal нет рекомендаций по изменению местоположения этого файла. Разве это не создает потенциальную проблему безопасности? Я видел, как веб-серверы Apache в конечном итоге не могут интерпретировать файлы PHP и подают содержимое файла PHP в чистом текстовом формате вместо предполагаемого содержимого HTML. Это полностью раскрыло бы имя пользователя и пароль для соединения с базой данных, которые даже не были зашифрованы. Почему это работает так?

Cesar
источник

Ответы:

6

Вы абсолютно правы. Я точно знаю, что многие разработчики / системные администраторы не берут на себя риск того, что интерпретатор PHP может произойти сбой в какой-то момент, и включают пароль db (и другие конфиденциальные данные, такие как ключи API) из файла, находящегося за пределами документа веб-сервера.

Я удивлен, что это нигде не задокументировано как лучшая практика - по крайней мере, я не смог найти его и на drupal.org. У меня нет информации, почему он работает так, как работает.

marcvangend
источник
6
Я помню, как несколько лет назад я видел дискуссию между основными / известными разработчиками, в которой они выступали против удаления конфиденциальных данных из корня сети. Я помню, что был в ужасе в то время. Если память мне не изменяет, я думаю, что аргумент был связан с тем, что Drupal нужно работать «из коробки» на виртуальном хостинге, и эти рекомендации затруднят реализацию для масс или что-то в этом роде. Я посмотрю, смогу ли я найти это обсуждение
Клайв
1
Спасибо @Clive. Я не хотел добавлять домыслы к своему ответу, но, как вы говорите, требование работать «из коробки» во всех типах сред кажется наиболее вероятной причиной наличия settings.php внутри docroot.
Marcvangend
Да, @marcvangend, это то, что я сам подумал, но каким-то образом во время установки может быть доступна автоматическая процедура, которая проверяет, имеются ли соответствующие права на запись / владельца на уровне сервера, и, если это так, для обеспечения дополнительной безопасности, стандартизированным и контролируемым (с помощью основной методологии) способом.
Цезарь
0

В некоторых провайдерах эта конфиденциальная строка соединения хранится вне корневого веб-каталога (например, getpantheon.com). Вы всегда можете создать несколько символических ссылок вместо того, чтобы хранить их непосредственно в папке / sites / default.

fndtn357
источник