In questo articolo
Cos'e htpasswd?
Un file htpasswd e un database in file piatto utilizzato dai server web Apache e Nginx per memorizzare nomi utente e password hashate per l'autenticazione HTTP Basic. Ogni riga contiene un nome utente e un hash della password separati da due punti, come admin:$2y$10$abc... Il file fornisce un modo semplice per proteggere le risorse web senza richiedere un sistema di autenticazione completo.
L'utilita htpasswd faceva originariamente parte del progetto Apache HTTP Server, ma il formato file e diventato uno standard de facto supportato da molti server web, reverse proxy e strumenti di sviluppo. I generatori htpasswd moderni supportano piu algoritmi di hashing tra cui bcrypt, SHA-1 e MD5, con bcrypt come scelta raccomandata per la sicurezza.
Come funziona la generazione htpasswd
Generare una voce htpasswd comporta l'hashing di una password in testo semplice con un algoritmo scelto e la sua formattazione insieme al nome utente. La robustezza dell'hash risultante dipende dall'algoritmo e dalla sua configurazione.
- bcrypt ($2y$) — l'opzione piu sicura, utilizza un fattore di costo configurabile (predefinito 10) che controlla quanto e computazionalmente costoso ogni hash, rendendo gli attacchi a forza bruta impraticabili
- SHA-1 ({SHA}) — produce un digest SHA-1 codificato in Base64 con prefisso {SHA}; piu veloce di bcrypt ma significativamente piu debole contro gli attacchi GPU moderni
- MD5 ($apr1$) — variante MD5 personalizzata di Apache con un salt casuale; formato legacy ancora supportato ma non raccomandato per nuove implementazioni a causa di debolezze note
Prova gratuitamente — nessuna registrazione richiesta
Genera voce htpasswd →Usi comuni di htpasswd
L'autenticazione basata su htpasswd e ampiamente utilizzata per il controllo degli accessi leggero dove un sistema di autenticazione completo sarebbe eccessivo.
- Protezione dei siti di staging — limitare l'accesso agli ambienti di pre-produzione in modo che solo i membri del team e gli stakeholder possano visualizzare il lavoro in corso
- Sicurezza del pannello di amministrazione — aggiungere un livello extra di autenticazione davanti ai pannelli di amministrazione CMS, agli strumenti di gestione database o alle dashboard di monitoraggio
- Accesso all'ambiente di sviluppo — proteggere i server di sviluppo locali o condivisi da accessi non autorizzati senza configurare OAuth o LDAP
Domande frequenti
Devo usare bcrypt, SHA-1 o MD5 per htpasswd?
Usa sempre bcrypt quando possibile. Bcrypt e progettato appositamente per l'hashing delle password con un fattore di costo configurabile che lo rende resistente agli attacchi a forza bruta. SHA-1 e MD5 sono funzioni hash veloci non progettate per le password — possono essere violate ordini di grandezza piu velocemente di bcrypt.
Dove devo posizionare il file htpasswd sul mio server?
Conserva il file htpasswd fuori dalla root web per evitare che venga servito ai visitatori. Una posizione comune e /etc/apache2/.htpasswd o /etc/nginx/.htpasswd. Quindi fai riferimento ad esso nella configurazione del server con AuthUserFile (Apache) o auth_basic_user_file (Nginx). Non collocarlo mai in una directory accessibile pubblicamente.
L'autenticazione HTTP Basic e abbastanza sicura per la produzione?
L'autenticazione Basic invia le credenziali codificate in Base64 (non crittografate) con ogni richiesta, quindi deve sempre essere utilizzata su HTTPS. Anche con HTTPS, manca di funzionalita come la gestione delle sessioni, il rate limiting e il blocco dell'account. E adatta per scenari a basso rischio come siti di staging o strumenti interni, ma l'autenticazione utente in produzione dovrebbe utilizzare un sistema con sessioni basate su token.