Хранение файлов сценария вне веб-корня

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

Это кажется несколько параноидальным мне, но я предполагаю, что люди стали записанными плохо на этом прежде, таким образом, я готов продвинуться. Предложение обычно принимает форму наличия включать файлов в чем-то как '../include_files /' так не непосредственно в корне документа и не непосредственно доступное посторонним через веб-сервер.

Мой вопрос - это: существует ли значительная разница в безопасности между тем путем и просто подверганием Вашего 'include_files' каталога под корнем документа и липкая .htaccess файл там (с соответствующими записями)? Был бы, вставляя .htaccess файл '../include_files /' делают какое-либо существенное улучшение там?

TIA,

Монте-Карло

9
задан memilanuk 14 June 2010 в 00:31
поделиться

3 ответа

Использование .htaccess увеличивает накладные расходы, поскольку Apache приходится проверять и обрабатывать еще один элемент.

Держать файлы вне корня web-сайта - это не паранойя, это хорошая практика. Что произойдет, если кто-то обратится к одному из "включаемых" файлов напрямую, и он выдаст ошибку, потому что не были загружены все необходимые файлы?

Каждый файл должен иметь свои собственные проверки безопасности, чтобы убедиться, что он работает в ожидаемом окружении. Каждый исполняемый файл в веб-доступной области - это потенциальная дыра в безопасности.

15
ответ дан 4 December 2019 в 10:30
поделиться

Это действительно зависит от того, что у вас есть в ваших include_files . Самым важным является то, что вы помещаете любые учетные данные, которые у вас есть, вне корня документа (логины для входа в базу данных и т. Д.). Все остальное на самом деле вторично и не имеет большого значения.

Если вы не хотите, чтобы кто-то украл ваш исходный код, попробуйте следовать соглашениям Zend:

application
library
public

DocumentRoot указывает на public и содержит только медиафайлы, файлы js / css. HTML / views, логика базы данных, conf / credentials находятся в приложении . Сторонние библиотеки находятся в библиотеке .

5
ответ дан 4 December 2019 в 10:30
поделиться

Теоретически, если вы просто поместите файл .htaccess в папку, вы все равно сможете вызывать файлы .php напрямую.

Убирая их из корня сервера, вы, однако, не даете к ним доступа никогда тем, кто просматривает ваш сайт.

0
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: