403 Forbidden

Klient jest znany, ale nie ma uprawnień do tej operacji.

Kiedy go używać

Zalogowany, ale bez uprawnień.

Typowe przyczyny i rozwiązania

Na serwerach WWW 403 zwykle oznacza, że dostępu odmawia system plików lub konfiguracja. nginx zwraca go, gdy użytkownik, jako który działa jego worker, nie może odczytać pliku lub przejść przez folder nadrzędny (potrzebuje x na każdym folderze na ścieżce), gdy folder nie ma pliku index, a autoindex jest wyłączony, albo przy regule deny. Log błędów mówi, o który przypadek chodzi: „permission denied” lub „directory index is forbidden”.

Inne źródła: WAF lub Cloudflare blokujące żądanie (szukaj Ray ID na stronie błędu), reguły antybotowe odrzucające user agenta curla, sprawdzanie CSRF w Django, wygasły presigned URL S3 albo S3 odpowiadające 403 zamiast 404 dla brakujących obiektów, gdy wywołujący nie ma s3:ListBucket. W API 403 oznacza poprawne poświadczenia bez uprawnień: sprawdź role, zakresy OAuth i własność zasobu.

Błąd klienta (4xx)

Kody 4xx to błędy klienta: samo żądanie jest błędne, nieautoryzowane albo wskazuje na coś, czego nie ma. Ponowienie tego samego żądania nic nie da.

Jak to wygląda

HTTP/1.1 403 Forbidden

Jak go wysłać

Node.js / Expressres.status(403).end()
Python / Flaskreturn '', 403
nginxreturn 403;

Jak go sprawdzić

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Otwórz narzędzie Kody statusu HTTP