Home Database & Server Autenticazione Digest e utilizzo file DBM con Apache
Autenticazione Digest e utilizzo file DBM con Apache
Database & Server
Venerdì 07 Maggio 2010 10:05

L'articolo tratta di un altro modo per creare pagine protette da autenticazione diverso da quello già proposto.

Per diversi motivi questo metodo è più sicuro ed efficace.

Il modulo usato qui è mod_auth_digest invece di mod_auth_basic.

Questo modulo evita il passaggio dei dati in chiaro, in quanto la Digest Autentication altro non è che una implementazione dell'algoritmo MD5.

Mi soffermo sulle differenze che potete vedere da voi, ma entro subito nel dettaglio.

Prima di tutto modifichiamo il file .htaccess:

 

AuthName Admin
AuthType Digest
AuthDigestDomain /amministrazione/
AuthDigestProvider file
AuthUserFile /percorso_del_file/password
Require valid-user

Useremo un altro strumento da riga di comando, htdigest:

$ htdigest -c /percorso_del_file/password Admin matteo
Adding user matteo in realm Admin

Il primo argomento è il percorso del file, il secondo il realm che abbiamo definito con AuthName e l'ultimo lo username del primo utente che vogliamo inserire.

Il problema di questo metodo è il supporto dei browser.

Mentre auth_basic è universale, auth_digest richiede browser di ultima generazione.

Internet explorer 5 e 6 supportano nativamente digest ma hanno un problema con le query string nelle richieste GET.

Per ovviare è stata introdotta in Apache la seguente direttiva correttiva:

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

Dalla versione 7 invece non è più necessaria.

Passiamo ora a salvare le credenziali su un file DBM.

Il punto debole sia di basic che di digest è che le password vengono salvate su semplici file di testo.

Apache è in grado di usare diversi moduli per cercare password in file dbm, in database mysql, ldap, ecc.

Prendo come esempio dbm anche più facile e più veloce degli altri.

Un file dbm (Data Base Management) è un file binario contente coppie chiave/valore.

Dobbiamo solamente indicare il tipo di provider è la posizione del file dbm:

AuthBasicProvider dbm #se si usa basic
AuthDigestProvider dbm #se si usa digest
AuthDBMUserFile /percorso_del_file_dbm/password

Inoltre per la basic Apache ci fornisce htdbm come gestore dei file dbm:

$ htdbm -c /percorso_del_file_dbm/password matte
Enter password :
Re-type password :
Database /percorso_del_file_dbm/password created.
 

Per eliminare un utente usiamo l'opzione -x, mentre per elencare gli utenti presenti nel database -l.

htdbm supporta diversi tipi di file: SDBM, GDBM, NDBM, DB.

E apache dovrà essere istruito du questo:

AuthDBMType DB

Insomma come sempre Apache ci sorprende per la sua flessibilità e la miriade di soluzioni che ci offre.

Sta a noi decidere cosa vogliamo farne!

Ultimo aggiornamento Mercoledì 11 Maggio 2011 10:33