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.
.htaccessw 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
| Kod | Nazwa | Opis |
|---|---|---|
| 401 | Unauthorized | Żądanie wymaga uwierzytelnienia; serwer odsyła nagłówek WWW-Authenticate. |
| 403 | Forbidden | Uwierzytelnienie jest prawidłowe, ale dostęp jest zabroniony. |
| 404 | Not 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.