HTTP 403 Forbidden

Accesso negato: il server ha compreso la richiesta e rifiuta deliberatamente di soddisfarla.

Cosa significa HTTP 403

HTTP 403 Forbidden significa che il server sa cosa hai chiesto e rifiuta. A differenza di 401, autenticarsi (di nuovo) non aiuterà — il rifiuto riguarda i permessi o le policy, non l'identità.

Le ragioni vanno dai permessi del file system sul server, ai blocchi geografici/IP, fino a un web application firewall che decide che la richiesta sembra malevola. Alcuni siti restituiscono anche 403 invece di 404 per nascondere se una risorsa esiste.

Cause comuni degli errori 403

  • Diritti insufficienti: l'account non ha il ruolo, oppure il file non ha i permessi di lettura (chmod/proprietario sul server).
  • Indirizzo IP, paese o user-agent bloccato dal server, dalla CDN o da una regola WAF.
  • Elenco delle directory richiesto dove l'autoindex è disabilitato (nessun index.html nella cartella).
  • Protezione hotlink che rifiuta le richieste con un Referer esterno.
  • Una verifica di Cloudflare o di un altro WAF è fallita — il traffico automatizzato spesso vede 403 qui.

Come risolverlo da utente

  • Verifica di essere connesso a un account che ha effettivamente accesso.
  • Prova senza VPN o proxy — il tuo IP di uscita potrebbe essere bloccato.
  • Se possiedi il contenuto, controlla i permessi dei file e le regole .htaccess/WAF invece di riprovare.

Come risolverlo da sviluppatore

  • Controlla proprietà e permessi dei file (ad esempio 644 per i file / 755 per le directory nei server web tipici).
  • Rivedi le regole di negazione: .htaccess, direttive deny di nginx, plugin di sicurezza, regole gestite del WAF.
  • Assicurati che esista un documento indice o abilita/disabilita esplicitamente l'elenco delle directory come previsto.
  • Per le API, restituisci 403 con una motivazione leggibile dalla macchina così i client possono distinguere policy da errori di autenticazione.

Esempio di risposta

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error":"forbidden","reason":"account lacks role: admin"}

FAQ

Qual è la differenza tra 403 e 401?

401 ti chiede di autenticarti; 403 dice che l'autenticazione non cambierà la risposta — semplicemente non hai il permesso.

Perché un bot o uno script riceve 403 mentre un browser funziona?

Un WAF o uno strato di protezione anti-bot sta filtrando il traffico non da browser. Identificati correttamente o usa l'API ufficiale del sito.

Un 403 può essere restituito al posto di un 404?

Sì — alcuni server nascondono l'esistenza delle risorse rispondendo in modo uniforme con 403 (o 404) per qualsiasi cosa non autorizzata.