HTTP 403 „Zabronione”: przyczyny, zapobieganie i naprawianie

Opublikowany: 2023-09-01
Spis treści
  • Co to jest HTTP 403?
  • Najczęstsze przyczyny
  • Rozpoznać chorobę
  • Jak zapobiegać
  • Jak to naprawić
  • Powiązane błędy

HTTP 403 oznacza „Zabronione” i wskazuje, że serwer rozumie żądanie klienta, ale odmawia jego spełnienia.

Ten artykuł ma na celu rzucić światło na istotę protokołu HTTP 403, rozwikłać jego najczęstsze przyczyny, przeprowadzić diagnostykę oraz zaoferować techniki zapobiegania i rozwiązywania problemów.

Aby zapewnić kompleksowe zrozumienie, wyróżnimy również powiązane błędy.

Co to jest HTTP 403?

Błąd 403-zabroniony

HTTP 403 to kod stanu oznaczający „Zabroniony”. W przypadku napotkania informuje klienta, że ​​serwer rozumie żądanie, ale odmawia jego wykonania.

W przeciwieństwie do statusu 401 „Nieautoryzowany” , który wiąże się z problemami z uwierzytelnieniem użytkownika, błąd 403 wskazuje, że uwierzytelnienie mogło się powieść, ale uwierzytelniony użytkownik nadal nie ma niezbędnych uprawnień, aby uzyskać dostęp do żądanego zasobu.

Najczęstsze przyczyny

Błędy HTTP 403 mogą wynikać z różnych okoliczności:

  1. Niewystarczające uprawnienia : użytkownik może nie mieć niezbędnych uprawnień, aby uzyskać dostęp do określonego zasobu na serwerze.
  2. Ograniczenia geograficzne : niektóre treści internetowe mogą być dostępne tylko dla użytkowników z określonych regionów lub krajów.
  3. Blokowanie IP : Serwery mogą blokować niektóre adresy IP ze względów bezpieczeństwa lub wcześniejszych podejrzanych działań.
  4. Rygorystyczne reguły .htaccess : Nieprawidłowe lub zbyt restrykcyjne reguły w pliku .htaccess na serwerach Apache mogą prowadzić do błędów 403.
  5. Protokoły bezpieczeństwa serwera : niektóre serwery mogą mieć protokoły bezpieczeństwa, które blokują żądania z niektórych programów użytkownika lub przeglądarek.

Rozpoznać chorobę

Aby określić główną przyczynę błędu HTTP 403, wykonaj następujące kroki:

  1. Sprawdź adres URL : upewnij się, że uzyskiwany jest dostęp do prawidłowego adresu URL i że nie ma w nim literówek.
  2. Sprawdź dzienniki serwera : dzienniki serwera mogą dostarczyć informacji o przyczynach odrzucenia konkretnego żądania.
  3. Sprawdź plik .htaccess : w przypadku witryn internetowych działających na serwerze Apache przeglądanie pliku .htaccess może pomóc w wykryciu zbyt restrykcyjnych reguł.

Jak zapobiegać

Unikanie błędów HTTP 403 obejmuje proaktywne kroki mające na celu zapewnienie płynnej interakcji serwer-klient:

  1. Regularnie przeglądaj uprawnienia : okresowo sprawdzaj i dostosowuj uprawnienia, aby zapewnić użytkownikom dostęp do niezbędnych zasobów.
  2. Ostrożnie aktualizuj plik .htaccess : Modyfikując plik .htaccess, rób to ostrożnie i zawsze noś kopie zapasowe.
  3. Monitoruj bezpieczeństwo serwera : Bądź na bieżąco z protokołami bezpieczeństwa serwera, aby zapobiec przypadkowym blokadom.

Jak to naprawić

Rozwiązanie problemu błędu 403 zależy od jego przyczyny:

1. Dostosuj uprawnienia

Upewnij się, że użytkownikom lub katalogom, które wymagają dostępu, nadano odpowiednie uprawnienia. (Czytaj więcej)

2. Napraw problemy z .htaccess

  1. Utwórz kopię zapasową pliku .htaccess : Zawsze wykonaj kopię zapasową pliku .htaccess przed wprowadzeniem jakichkolwiek zmian.
  2. Sprawdź dyrektywy Odmów : Poszukaj dyrektyw Deny w pliku .htaccess . Jeśli są obecne, mogą powodować błąd 403. Na przykład: Order allow,deny Deny from all Aby rozwiązać ten problem, usuń dyrektywę lub zmodyfikuj ją, aby zezwolić na żądany ruch.
  3. Ochrona hasłem : Jeśli określone katalogi są chronione hasłem za pomocą AuthType , AuthName , AuthUserFile i Require , upewnij się, że masz prawidłowe dane uwierzytelniające, aby uzyskać do nich dostęp. Jeśli nie chcesz ochrony hasłem, możesz skomentować lub usunąć te dyrektywy.
  4. Uprawnienia do plików : chociaż nie jest to rozwiązanie wyłącznie .htaccess , upewnij się, że Twoje pliki i katalogi mają odpowiednie uprawnienia. W przypadku wielu serwerów typowa konfiguracja uprawnień wygląda następująco:
    • Foldery: 755
    • Pliki: 644
    Nieprawidłowe uprawnienia, szczególnie w przypadku katalogów, mogą prowadzić do błędów 403.
  5. Listy katalogów : Jeśli próbujesz uzyskać dostęp do katalogu, który nie ma pliku indeksu (np. index.html lub index.php ), a listy katalogów są wyłączone, może pojawić się błąd 403. Możesz albo:
    • Dodaj plik indeksu do katalogu.
    • Włącz wykazy katalogów za pomocą: Options +Indexes
  6. Reguły Mod_Rewrite : Jeśli używasz reguł mod_rewrite, upewnij się, że są poprawnie napisane. Nieprawidłowe reguły mogą czasami prowadzić do błędów 403. Skomentuj konkretne zasady, aby sprawdzić, czy są one przyczyną.
  7. Sprawdź ograniczenia plików : Poszukaj reguł ograniczających dostęp w oparciu o nazwę pliku, np.: <Files "secretfile.php"> Order allow,deny Deny from all </Files> Dostosuj lub usuń te reguły, jeśli to konieczne.
  8. Upewnij się, że .htaccess Składnia : Niepoprawnie napisany plik .htaccess lub plik z nieprawidłowymi dyrektywami może spowodować błąd 403. Upewnij się, że wszystkie dyrektywy i składnia są poprawne.

Po wprowadzeniu zmian w pliku .htaccess pamiętaj o wyczyszczeniu pamięci podręcznej przeglądarki lub przetestuj przy użyciu innej przeglądarki, aby upewnić się, że widzisz zaktualizowany wynik. Jeśli żadne z powyższych rozwiązań nie rozwiąże problemu, rozważ przywrócenie kopii zapasowej pliku .htaccess z czasu, gdy nie występował błąd 403.

3. Dodaj adresy IP do białej listy

Jeśli przyczyną jest blokowanie adresów IP, rozważ umieszczenie danego adresu IP na białej liście.

Biała lista z .htaccess:

  1. Znajdź istniejące reguły blokowania adresów IP : poszukaj istniejących reguł w pliku .htaccess , które mogą blokować adresy IP. Mogą one wyglądać następująco: Order Deny,Allow Deny from all Allow from 123.123.123.123 W tym przykładzie dozwolony jest tylko adres IP 123.123.123.123 , a wszystkie inne adresy IP są odrzucane.
  2. Dodaj adres IP do białej listy : Jeśli chcesz dodać do białej listy konkretny adres IP, możesz go dodać za pomocą dyrektywy Allow from : Allow from YOUR.IP.ADDRESS.HERE IP.TUTAJ Zastąp YOUR.IP.ADDRESS.HERE adresem IP, który chcesz umieścić na białej liście .
  3. Dodaj do białej listy wiele adresów IP : Jeśli masz wiele adresów IP do umieszczenia na białej liście, możesz dodać wiele dyrektyw Allow from : Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
  4. Dodaj zakres adresów IP do białej listy : Jeśli masz zakres adresów IP, możesz użyć notacji CIDR lub znaków wieloznacznych: #Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.* Obydwa powyższe przykłady dodaj do białej listy wszystkie adresy IP od 123.123.123.0 do 123.123.123.255 .
  5. Zapisz i przetestuj : Po dodaniu niezbędnych Allow from Zezwalaj na zapisz plik .htaccess , a następnie spróbuj uzyskać dostęp do swojej witryny z wcześniej zablokowanego adresu IP. Powinien być teraz dostępny.
  6. Wyczyść pamięć podręczną przeglądarki : zawsze wyczyść pamięć podręczną przeglądarki lub użyj okna incognito/prywatnego podczas testowania, aby upewnić się, że widzisz najnowsze zmiany.

Używając iptables :

I. Utwórz kopię zapasową aktualnych reguł iptables : Przed wprowadzeniem jakichkolwiek zmian dobrym pomysłem jest utworzenie kopii zapasowej aktualnych reguł iptables .

 sudo iptables-save > /path/to/backupfile.txt

II. Dodaj adres IP do białej listy : Aby zezwolić na cały ruch z określonego adresu IP:

 sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT

Zastąp YOUR.IP.ADDRESS.HERE adresem IP, który chcesz dodać do białej listy.

iii. Zapisz zmiany : w zależności od dystrybucji możesz użyć:

 sudo service iptables save

Lub:

 sudo iptables-save > /etc/sysconfig/iptables

Używając ufw :

I. Sprawdź, czy UFW jest zainstalowany : Jeśli nie, możesz go zainstalować za pomocą menedżera pakietów swojej dystrybucji, na przykład:

 sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)

II. Włącz UFW : Jeśli nie jest jeszcze włączony, możesz włączyć UFW za pomocą:

 sudo ufw enable

iii. Dodaj adres IP do białej listy : Aby zezwolić na cały ruch z określonego adresu IP:

 sudo ufw allow from YOUR.IP.ADDRESS.HERE

Zastąp YOUR.IP.ADDRESS.HERE adresem IP, który chcesz dodać do białej listy.

IV. Sprawdź zasady : Możesz sprawdzić zasady UFW za pomocą:

 sudo ufw status

4. Poszukaj pomocy dostawcy usług hostingowych : Czasami skontaktowanie się z dostawcą usług hostingowych może pomóc w zidentyfikowaniu i naprawieniu problemów specyficznych dla serwera.

Powiązane błędy

Aby lepiej kontekstualizować protokół HTTP 403, rozważ następujące powiązane kody stanu HTTP:

  1. HTTP 401 (nieautoryzowany) : żądanie wymaga uwierzytelnienia użytkownika.
  2. HTTP 402 (wymagana płatność) : zarezerwowany do wykorzystania w przyszłości, sugeruje, że wymagana jest płatność.
  3. HTTP 404 (nie znaleziono) : Żądany zasób jest niedostępny na serwerze.

Podsumowując, zrozumienie zawiłości kodu stanu HTTP 403 „Zabronione” jest niezbędne do zapewnienia optymalnych interakcji w sieci. Pozostając na bieżąco i proaktywnie, programiści i użytkownicy mogą uniknąć potencjalnych pułapek i zapewnić bezproblemową obsługę sieci.