HTTP 403 “Proibito”: cause, prevenzione e correzione
Pubblicato: 2023-09-01- Cos'è l'HTTP 403?
- Cause comuni
- Diagnosticare
- Come prevenire
- Come sistemarlo
- Errori correlati
HTTP 403, significa “Proibito” e indica che la richiesta del client è compresa dal server, ma si rifiuta di soddisfarla.
Questo articolo mira a far luce sull'essenza dell'HTTP 403, illustrarne le cause comuni, guidarlo nella diagnosi e offrire tecniche di prevenzione e risoluzione.
Evidenzieremo anche gli errori correlati per fornire una comprensione completa.
Cos'è l'HTTP 403?
HTTP 403 è un codice di stato che significa "Proibito". Quando incontrato, dice al client che il server comprende la richiesta ma si rifiuta di completarla.
A differenza dello stato 401 “Non autorizzato” , che si riferisce a problemi con l'autenticazione dell'utente, l'errore 403 indica che l'autenticazione potrebbe essere andata a buon fine, ma l'utente autenticato non dispone ancora delle autorizzazioni necessarie per accedere alla risorsa richiesta.
Cause comuni
Gli errori HTTP 403 possono derivare da diverse circostanze:
- Autorizzazioni insufficienti : l'utente potrebbe non disporre delle autorizzazioni necessarie per accedere a una particolare risorsa sul server.
- Restrizioni geografiche : alcuni contenuti web potrebbero essere limitati agli utenti di regioni o paesi specifici.
- Blocco IP : i server potrebbero bloccare determinati indirizzi IP a causa di problemi di sicurezza o precedenti attività sospette.
- Regole .htaccess rigide : regole errate o eccessivamente restrittive nel file .htaccess sui server Apache possono portare a errori 403.
- Protocolli di sicurezza del server : alcuni server potrebbero disporre di protocolli di sicurezza che bloccano le richieste da determinati agenti utente o browser.
Diagnosticare
Per determinare la causa principale di un errore HTTP 403, considerare i seguenti passaggi:
- URL di revisione : assicurati di accedere all'URL corretto e che non siano presenti errori di battitura.
- Esamina i registri del server : i registri del server possono fornire informazioni sul motivo per cui una particolare richiesta è stata rifiutata.
- Controlla il file .htaccess : per i siti Web in esecuzione su Apache, la revisione del file .htaccess può identificare eventuali regole eccessivamente restrittive.
Come prevenire
Evitare gli errori HTTP 403 implica passaggi proattivi per garantire interazioni server-client fluide:
- Esamina regolarmente le autorizzazioni : controlla e modifica periodicamente le autorizzazioni per garantire che gli utenti possano accedere alle risorse necessarie.
- Aggiorna .htaccess con attenzione : quando modifichi il file .htaccess, fallo con cautela e conserva sempre i backup.
- Monitora la sicurezza del server : rimani aggiornato sui protocolli di sicurezza del server per prevenire blocchi involontari.
Come sistemarlo
La risoluzione di un errore 403 dipende dalla causa sottostante:
1. Modifica le autorizzazioni
Assicurarsi che siano concesse le autorizzazioni corrette agli utenti o alle directory che richiedono l'accesso. (Per saperne di più)
2. Risolvi i problemi .htaccess
- Effettua il backup del tuo file
.htaccess
: esegui sempre un backup del file.htaccess
prima di apportare qualsiasi modifica. - Controlla le direttive Nega : cerca eventuali direttive
Deny
nel tuo file.htaccess
. Se sono presenti, potrebbero causare l'errore 403. Ad esempio:Order allow,deny Deny from all
Per risolvere questo problema, rimuovere la direttiva o modificarla per consentire il traffico desiderato. - Protezione con password : se alcune directory sono protette da password utilizzando
AuthType
,AuthName
,AuthUserFile
eRequire
, assicurati di disporre delle credenziali corrette per accedervi. Se non desideri la protezione tramite password, puoi commentare o rimuovere queste direttive. - Permessi dei file : anche se questa non è strettamente una soluzione
.htaccess
, assicurati che i tuoi file e le tue directory abbiano le autorizzazioni corrette. Per molti server, una tipica configurazione dei permessi è:- Cartelle: 755
- File: 644
- Elenchi di directory : se stai tentando di accedere a una directory che non ha un file indice (come
index.html
oindex.php
) e gli elenchi di directory sono disabilitati, potresti ricevere un errore 403. Puoi:- Aggiungi un file indice alla directory.
- Abilita gli elenchi di directory con:
Options +Indexes
- Regole Mod_Rewrite : se stai utilizzando le regole mod_rewrite, assicurati che siano scritte correttamente. Regole errate a volte possono portare a errori 403. Commentare regole specifiche per vedere se sono la causa.
- Controlla le restrizioni sui file : cerca le regole che limitano l'accesso in base al nome del file, come:
<Files "secretfile.php"> Order allow,deny Deny from all </Files>
Modifica o rimuovi queste regole secondo necessità. - Assicurati della sintassi .htaccess : un file
.htaccess
scritto in modo errato o con direttive non valide può causare un errore 403. Assicurarsi che tutte le direttive e la sintassi siano corrette.
Dopo aver apportato modifiche al file .htaccess
, ricorda di svuotare la cache del browser o provare a utilizzare un browser diverso per assicurarti di visualizzare il risultato aggiornato. Se nessuna delle soluzioni precedenti risolve il problema, valuta la possibilità di ripristinare un backup del file .htaccess
da un momento in cui non si verificava l'errore 403.
3. Indirizzi IP nella whitelist
Se il colpevole è il blocco IP, valuta la possibilità di inserire nella whitelist l'indirizzo IP interessato.
Whitelist con .htaccess:
- Individua le regole di blocco IP esistenti : cerca eventuali regole esistenti nel tuo file
.htaccess
che potrebbero bloccare gli indirizzi IP. Potrebbero assomigliare a:Order Deny,Allow Deny from all Allow from 123.123.123.123
In questo esempio, è consentito solo l'IP123.123.123.123
e tutti gli altri IP sono negati. - Inserisci nella whitelist un indirizzo IP : se desideri inserire nella whitelist un indirizzo IP specifico, puoi aggiungerlo utilizzando la direttiva
Allow from
:Allow from YOUR.IP.ADDRESS.HERE
SostituisciYOUR.IP.ADDRESS.HERE
con l'indirizzo IP che desideri inserire nella whitelist . - Whitelist di più indirizzi IP : se si hanno più indirizzi IP da inserire nella whitelist, è possibile aggiungere più direttive
Allow from
:Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
- Autorizza un intervallo IP : se disponi di un intervallo di indirizzi IP, puoi utilizzare la notazione CIDR o i caratteri jolly:
#Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.*
Entrambi gli esempi precedenti sarebbero inserire nella whitelist tutti gli indirizzi IP da123.123.123.0
a123.123.123.255
. - Salva e prova : dopo aver aggiunto le necessarie direttive
Allow from
, salva il file.htaccess
e quindi prova ad accedere al tuo sito Web dall'indirizzo IP precedentemente bloccato. Ora dovrebbe essere accessibile. - Cancella cache del browser : svuota sempre la cache del browser o utilizza una finestra di navigazione in incognito/privata durante il test per assicurarti di visualizzare le modifiche più recenti.
Utilizzando iptables
:
io. Backup delle regole attuali di iptables : prima di apportare qualsiasi modifica, è una buona idea eseguire il backup delle regole attuali iptables
.
sudo iptables-save > /path/to/backupfile.txt
ii. Inserisci nella whitelist un indirizzo IP : per consentire tutto il traffico proveniente da un indirizzo IP specifico:
sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
Sostituisci YOUR.IP.ADDRESS.HERE
con l'indirizzo IP che desideri inserire nella whitelist.
iii. Salva le modifiche : a seconda della distribuzione, potresti utilizzare:
sudo service iptables save
O:
sudo iptables-save > /etc/sysconfig/iptables
Usando ufw
:
io. Controlla se UFW è installato : in caso contrario, puoi installarlo utilizzando il gestore pacchetti della tua distribuzione, ad esempio:
sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)
ii. Abilita UFW : se non già abilitato, puoi attivare UFW con:
sudo ufw enable
iii. Inserisci nella whitelist un indirizzo IP : per consentire tutto il traffico proveniente da un indirizzo IP specifico:
sudo ufw allow from YOUR.IP.ADDRESS.HERE
Sostituisci YOUR.IP.ADDRESS.HERE
con l'indirizzo IP che desideri inserire nella whitelist.
iv. Verifica le regole : puoi controllare le regole UFW con:
sudo ufw status
4. Cerca il supporto del provider di hosting : a volte, contattare il tuo provider di hosting può aiutare a identificare e correggere i problemi specifici del server.
Errori correlati
Per contestualizzare ulteriormente HTTP 403, considera questi codici di stato HTTP correlati:
- HTTP 401 (Non autorizzato) : la richiesta richiede l'autenticazione dell'utente.
- HTTP 402 (Pagamento richiesto) : riservato per uso futuro, suggerisce che è richiesto il pagamento.
- HTTP 404 (Non trovato) : la risorsa richiesta non è disponibile sul server.
In conclusione, comprendere le complessità del codice di stato HTTP 403 “Forbidden” è fondamentale per garantire interazioni web ottimali. Rimanendo informati e proattivi, gli sviluppatori e gli utenti possono superare le potenziali insidie e mantenere esperienze web ininterrotte.
Come uno dei co-fondatori di Codeless, metto a disposizione la mia esperienza nello sviluppo di WordPress e applicazioni web, nonché un track record nella gestione efficace di hosting e server. La mia passione per l'acquisizione di conoscenze e il mio entusiasmo per la costruzione e la sperimentazione di nuove tecnologie mi spingono a innovare e migliorare costantemente.
Competenza:
Sviluppo web,
Web design,
Amministrazione del sistema Linux,
SEO
Esperienza:
15 anni di esperienza nello sviluppo Web sviluppando e progettando alcuni dei temi WordPress più popolari come Specular, Tower e Folie.
Formazione scolastica:
Ho una laurea in Ingegneria Fisica e un Master in Scienza dei Materiali e Optoelettronica.
Twitter, Linkedin