Я только что обновил свой сервер Apache до Apache / 2.4.6, который работает под Ubuntu 13.04. Я имел обыкновение иметь файл vhost, у которого было следующее:
<Directory "/home/john/development/foobar/web">
AllowOverride All
</Directory>
Но когда я запустил это, я получил «Запрещено. У вас нет разрешения на доступ /»
После небольшого поиска в Google я обнаружил, что для того, чтобы мой сайт снова заработал, мне нужно было добавить следующую строку «Требовать все предоставлено», чтобы мой vhost выглядел так:
<Directory "/home/john/development/foobar/web">
AllowOverride All
Require all granted
</Directory>
Я хочу знать, является ли это "безопасным" и не влечет ли каких-либо проблем безопасности. Я прочитал на странице Apache, что это «имитирует функциональность, которая была ранее предоставлена директивами« Разрешить от всех »и« Запретить от всех ». Этот провайдер может принимать один из двух аргументов, которые« предоставлены »или« отклонены ». примеры будут предоставлять или запрещать доступ ко всем запросам. "
Но в нем не говорилось, была ли это какая-то проблема безопасности или почему мы теперь должны это делать, когда в прошлом вам не приходилось это делать.
источник
Ответы:
Конфигурация управления доступом изменилась в 2.4, и старые конфигурации не совместимы без некоторых изменений. Смотрите здесь .
Если ваша старая конфигурация была
Allow from all
(никакие IP-адреса не заблокированы от доступа к службе), тоRequire all granted
новый функциональный эквивалент.источник
Require all denied
.Allow from all
. Вы должны «слиться»Require all granted
с другими существующимиRequire
правилами. В моем случае существующееRequire valid-user
было проигнорировано при слепом преобразовании конфигурации, как это рекомендуется везде. Это было худшее, что могло случиться ...Я знаю, что это старый пост, но я думаю, что могу помочь больше с функциональным примером, который я всегда использую!
В Apache 2.2 будет выглядеть так:
В Apache 2.4 будет выглядеть так:
Будьте осторожны при использовании аутентификации htacess , этот новый синтаксис может сделать некоторые плохие и неожиданные вещи , если это ваш случай, пожалуйста, прочитайте: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me- to-решить-требовать-действительный-ip-или-требовать-действительный-пользователь, и вы должны быть в порядке!
источник
require all granted
запрещенной HTTP-аутентификации работает, поэтому спасибо за информацию.