encyklopedia.space

403

403 – kod odpowiedzi protokołu HTTP oznaczający Forbidden (zabronione). Jest to jeden z tzw. kodów statusu HTTP klasy 4xx, czyli błędy klienta. Serwer zwraca ten kod, gdy żądanie zostało prawidłowo sformułowane, ale nie ma uprawnień do uzyskania żądanego zasobu.

Historia

Kod 403 został wprowadzony w pierwszej specyfikacji HTTP/1.0 (RFC 1945) oraz utrzymany w HTTP/1.1 (RFC 2616). Od tego czasu pozostaje niezmieniony, choć w praktyce serwery często używają go zamiennie z kodem 401 (Unauthorized) w zależności od implementacji.

Przyczyny zwrócenia kodu 403

  • Brak uprawnień – użytkownik nie posiada wymaganych ról lub grup (np. listy kontroli dostępu).
  • Ograniczenia IP – adres IP został zablokowany w firewallu lub w ustawieniach serwera.
  • Polityka serwera – wyłączono dostęp do określonych katalogów lub plików (np. .htaccess w Apache).
  • Ograniczenia metod – żądana metoda HTTP (np. PUT) nie jest dopuszczona dla danego zasobu.
  • Wykrycie ataku – system wykrył próbę SQL injection lub inny atak i odrzucił żądanie.

Różnice w stosunku do podobnych kodów

KodNazwaOpis
401UnauthorizedŻądanie wymaga uwierzytelnienia; serwer odsyła nagłówek WWW-Authenticate.
403ForbiddenUwierzytelnienie jest prawidłowe, ale dostęp jest zabroniony.
404Not FoundŻądany zasób nie istnieje na serwerze.

Przykładowy nagłówek odpowiedzi


HTTP/1.1 403 Forbidden
Date: Wed, 15 Sep 2026 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 123
Connection: close

<html>
<head><title>403 Forbidden</title></head>
<body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
</body>
</html>
  

Obsługa po stronie klienta

W przeglądarkach internetowych kod 403 skutkuje wyświetleniem standardowej strony błędu, którą można zastąpić własnym komunikatem przy pomocy stron błędów konfigurowanych w serwerze WWW. Aplikacje mobilne i API zwykle interpretują kod 403 jako sygnał, że dalsze próby bez zmiany uprawnień są bezcelowe.

Bezpieczeństwo i dobre praktyki

  • Używaj kodu 403 zamiast 404, gdy chcesz ukryć istnienie zasobu przed nieautoryzowanym użytkownikiem.
  • W połączeniu z Content Security Policy i CORS można ograniczyć dostęp do zasobów tylko dla określonych domen.
  • Loguj wszystkie przypadki 403 w logach serwera, aby monitorować ewentualne próby naruszenia bezpieczeństwa.
  • Stosuj rate limiting, aby uniknąć ataków typu brute‑force, które generują liczne odpowiedzi 403.

Zobacz także