HTTP 403 „Zabronione”: przyczyny, zapobieganie i naprawianie
Opublikowany: 2023-09-01- 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?
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:
- Niewystarczające uprawnienia : użytkownik może nie mieć niezbędnych uprawnień, aby uzyskać dostęp do określonego zasobu na serwerze.
- Ograniczenia geograficzne : niektóre treści internetowe mogą być dostępne tylko dla użytkowników z określonych regionów lub krajów.
- Blokowanie IP : Serwery mogą blokować niektóre adresy IP ze względów bezpieczeństwa lub wcześniejszych podejrzanych działań.
- Rygorystyczne reguły .htaccess : Nieprawidłowe lub zbyt restrykcyjne reguły w pliku .htaccess na serwerach Apache mogą prowadzić do błędów 403.
- 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:
- Sprawdź adres URL : upewnij się, że uzyskiwany jest dostęp do prawidłowego adresu URL i że nie ma w nim literówek.
- Sprawdź dzienniki serwera : dzienniki serwera mogą dostarczyć informacji o przyczynach odrzucenia konkretnego żądania.
- 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:
- Regularnie przeglądaj uprawnienia : okresowo sprawdzaj i dostosowuj uprawnienia, aby zapewnić użytkownikom dostęp do niezbędnych zasobów.
- Ostrożnie aktualizuj plik .htaccess : Modyfikując plik .htaccess, rób to ostrożnie i zawsze noś kopie zapasowe.
- 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
- Utwórz kopię zapasową pliku
.htaccess
: Zawsze wykonaj kopię zapasową pliku.htaccess
przed wprowadzeniem jakichkolwiek zmian. - 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. - Ochrona hasłem : Jeśli określone katalogi są chronione hasłem za pomocą
AuthType
,AuthName
,AuthUserFile
iRequire
, 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. - 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
- Listy katalogów : Jeśli próbujesz uzyskać dostęp do katalogu, który nie ma pliku indeksu (np.
index.html
lubindex.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
- 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ą.
- 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. - 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:
- 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 IP123.123.123.123
, a wszystkie inne adresy IP są odrzucane. - 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ąpYOUR.IP.ADDRESS.HERE
adresem IP, który chcesz umieścić na białej liście . - 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
- 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 od123.123.123.0
do123.123.123.255
. - 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. - 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:
- HTTP 401 (nieautoryzowany) : żądanie wymaga uwierzytelnienia użytkownika.
- HTTP 402 (wymagana płatność) : zarezerwowany do wykorzystania w przyszłości, sugeruje, że wymagana jest płatność.
- 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.
Jako jeden ze współzałożycieli Codeless wnoszę do zespołu wiedzę specjalistyczną w zakresie tworzenia WordPress i aplikacji internetowych, a także doświadczenie w skutecznym zarządzaniu hostingiem i serwerami. Moja pasja zdobywania wiedzy oraz entuzjazm w konstruowaniu i testowaniu nowatorskich technologii napędzają mnie do ciągłego wprowadzania innowacji i doskonalenia.
Ekspertyza:
Tworzenie stron internetowych,
Projektowanie stron,
Administracja systemem Linux,
SEO
Doświadczenie:
15 lat doświadczenia w tworzeniu stron internetowych, opracowując i projektując niektóre z najpopularniejszych motywów WordPress, takich jak Specular, Tower i Folie.
Edukacja:
Posiadam dyplom z fizyki inżynieryjnej oraz tytuł magistra w dziedzinie inżynierii materiałowej i optoelektroniki.
Twittera, Linkedina