
При обслуживании сайта с помощью Apache мне известны два способа размещения контента в «servername/foo»:
- Поместите его в корневой каталог веб-сайта в папку с именем «foo».
- Создать псевдоним
В качестве примера №2, XAMPP имеет следующие операторы в конфигурационном файле:
Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
...Что означает «если сервер — localhost, и кто-то посещает localhost/phpmyadmin, покажите ему содержимое C:/xampp/phpMyAdmin, учитываяследующие разрешения."
В этом примере, учитывая, что phpMyAdmin доступен по тому же URL,Имеет ли значение с точки зрения безопасности, находится ли он в корневой веб-папке или просто имеет псевдоним, чтобы казаться таковым?
решение1
Для "обычного" (статического) Apache и если сузить пример до жесткого сценария 1:1: Нет, это не имеет значения. Гипотетически, если вы смешиваете и путаете и теряете счет того, какие разрешения где наследуются, вы можете раскрыть что-то, чего не хотели.
Я думаю, что самое важное, это упрощает для отдельной ветки кода владение (и, возможно, запись в нее) отдельным пользователем, чем тот, который вы используете для своего веб-сервера и корня документа. Это необходимо для надежной упаковки, а надежная упаковка является основной частью долгосрочной безопасности.
Также имейте в виду, что модули apache могут быть чертовски гибкими. Так что, хотя ядро apache не будет вести себя по-другому, сторонние модули аутентификации или даже настройки php, такие как open_basedir и include_path, могут изменить поведение.
решение2
Нет.
Оператор Directory применяется к DIRECTORY. Неважно, где в системе находится этот каталог.
Обратите внимание, что отступ в вашем вопросе подразумевает некую связь между строками «Псевдоним» и «Каталог», которой на самом деле нет.