Я видел рекомендации сохранить некоторых, или все php включают файлы некоторое место кроме в корневом каталоге веб-документа (username/public_html в моем случае) по определенной причине защиты php файлы с уязвимой информацией (как информация о соединении с базой данных и входе в систему), если отклонения веб-сервера и прекращают защищать php файлы, и они становятся 'видимыми' посторонним, которые знают, где посмотреть.
Это кажется несколько параноидальным мне, но я предполагаю, что люди стали записанными плохо на этом прежде, таким образом, я готов продвинуться. Предложение обычно принимает форму наличия включать файлов в чем-то как '../include_files /' так не непосредственно в корне документа и не непосредственно доступное посторонним через веб-сервер.
Мой вопрос - это: существует ли значительная разница в безопасности между тем путем и просто подверганием Вашего 'include_files' каталога под корнем документа и липкая .htaccess файл там (с соответствующими записями)? Был бы, вставляя .htaccess файл '../include_files /' делают какое-либо существенное улучшение там?
TIA,
Монте-Карло
Использование .htaccess увеличивает накладные расходы, поскольку Apache приходится проверять и обрабатывать еще один элемент.
Держать файлы вне корня web-сайта - это не паранойя, это хорошая практика. Что произойдет, если кто-то обратится к одному из "включаемых" файлов напрямую, и он выдаст ошибку, потому что не были загружены все необходимые файлы?
Каждый файл должен иметь свои собственные проверки безопасности, чтобы убедиться, что он работает в ожидаемом окружении. Каждый исполняемый файл в веб-доступной области - это потенциальная дыра в безопасности.
Это действительно зависит от того, что у вас есть в ваших include_files
. Самым важным является то, что вы помещаете любые учетные данные, которые у вас есть, вне корня документа (логины для входа в базу данных и т. Д.). Все остальное на самом деле вторично и не имеет большого значения.
Если вы не хотите, чтобы кто-то украл ваш исходный код, попробуйте следовать соглашениям Zend:
application
library
public
DocumentRoot указывает на public
и содержит только медиафайлы, файлы js / css. HTML / views, логика базы данных, conf / credentials находятся в приложении
. Сторонние библиотеки находятся в библиотеке
.
Теоретически, если вы просто поместите файл .htaccess в папку, вы все равно сможете вызывать файлы .php напрямую.
Убирая их из корня сервера, вы, однако, не даете к ним доступа никогда тем, кто просматривает ваш сайт.