Właśnie zaktualizowałem mój serwer Apache do Apache / 2.4.6, który działa pod Ubuntu 13.04. Kiedyś miałem plik vhost, który miał następujące elementy:
<Directory "/home/john/development/foobar/web">
AllowOverride All
</Directory>
Ale kiedy pobiegłem, dostałem „Zabronione. Nie masz pozwolenia na dostęp /”
Po odrobinie googlingu odkryłem, że aby ponownie uruchomić moją stronę, musiałem dodać następujący wiersz „Wymagaj wszystkich przyznanych”, aby mój vhost wyglądał tak:
<Directory "/home/john/development/foobar/web">
AllowOverride All
Require all granted
</Directory>
Chcę wiedzieć, czy jest to „bezpieczne” i nie powoduje żadnych problemów związanych z bezpieczeństwem. Przeczytałem na stronie Apache, że to „naśladuje funkcjonalność poprzednio zapewnianą przez dyrektywy„ Zezwól na wszystko ”i„ Odmów ze wszystkich ”. Ten dostawca może przyjąć jeden z dwóch argumentów, które są„ przyznane ”lub„ odrzucone ”. przykłady udzielą lub odmówią dostępu do wszystkich wniosków ”.
Ale nie powiedział, czy to jest jakiś problem z bezpieczeństwem, czy dlaczego musimy to zrobić, kiedy w przeszłości nie musieliście.
źródło
Odpowiedzi:
Konfiguracja kontroli dostępu została zmieniona w wersji 2.4, a stare konfiguracje nie są kompatybilne bez pewnych zmian. Zobacz tutaj .
Jeśli twoja stara konfiguracja była
Allow from all
(żaden adres IP nie został zablokowany przed dostępem do usługi),Require all granted
to nowy funkcjonalny ekwiwalent.źródło
Require all denied
.Allow from all
. Musisz „połączyć” sięRequire all granted
z innymi istniejącymiRequire
regułami. W moim przypadku istniejącyRequire valid-user
został zignorowany podczas ślepej konwersji konfiguracji, tak jak jest to zalecane wszędzie. To była najgorsza rzecz, jaka mogła się zdarzyć ...Wiem, że to stary post, ale myślę, że mogę pomóc z funkcjonalnym przykładem, którego zawsze używam!
W Apache 2.2 byłoby:
W Apache 2.4 byłoby:
Zachowaj ostrożność podczas korzystania z uwierzytelniania htacess , ta nowa składnia może robić złe i nieoczekiwane rzeczy , jeśli tak jest w Twoim przypadku, przeczytaj: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me- zdecydować-wymagaj-ważnego-ip-lub-wymagaj-ważnego użytkownika i powinieneś być w porządku!
źródło
require all granted
zapobiegającego uwierzytelnieniu HTTP działa, więc dziękuję za informacje.