Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza di navigazione e per fornire pubblicità personalizzata. Proseguendo la navigazione del sito accetti il loro utilizzo. Leggi nell'informativa privacy come disattivarli. La disattivazione comporta il blocco di funzionalità del sito, come i video, i pulsanti sociali e la pubblicità.

Leggi l'informativa privacy e cookie

Non hai abilitato i cookies sul tuo computer. Potrai modificare questa scelta.

Hai abilitato i cookies sul tuo computer. Puoi modificare questa scelta.

Con l’ .htaccess è anche possibile limitare l’accesso a delle particolari cartelle del vostro sito (ad esempio /administrator/) a mezzo di password.

Il sistema di autenticazione di base non può essere considerato sicuro. Anche se le password sono conservate in forma cifrata, esse vengono passate dal server al client sotto forma di semplice testo e inoltre vengono passate ad ogni richiesta, per cui un cracker con un programma sniffer potrebbe tranquillamente rubare le password semplicemente stando lì in “ascolto” senza necessità di rimanerci per tempi lunghissimi. Ecco perché non si dovrebbe usare il sistema di autenticazione di base per ciò che richiede una sicurezza avanzata.

Volendo, quindi, proteggere la cartella /administrator/ (o qualsiasi altra cartella) si può procedere nel seguente modo. Decidiamo dove sistemare il file .htaccess, in considerazione del fatto che Apache scansiona ricorsivamente tutte le directory del sito, e che più in alto è posto il file, nella struttura gerarchica del sito, più cartelle potrà controllare.
Decidiamo dove sistemare i file .htpasswd e .htgroups, che non devono essere assolutamente accessibili via web da parte di terzi.

Un esempio potrebbe essere il seguente.

/root/.htaccess
/root/secret/.htpasswd/
/root/secret/.htgroups/ 

Dove la cartella /secret/ non è accessibile dal web.
Creiamo i file .htpasswd  e .htgroups nella cartella /secret/ come spiegato in sitedeveloper.
In pratica dobbiamo creare un file idoneo a contenere le password degli utenti che avranno accesso alle cartelle riservate. Apache difatti non utilizza gli account utente di sistema, ma richiede la creazione di utenti dedicati tramite l’utilizzo del comando .htpasswd.
Il primo passo consisterà quindi nella creazione del file tramite l’indicazione di un nome utente e di una password come mostrato diseguito:

htpasswd -c /membri/root/secret/.htpasswd rebel

Digitando questo comando .htpasswd creerà il file .htpasswd inserendo come primo utente rebel, aggiungendo poi la password che l’utente digita (.htpasswd può utilizzare una password fornita sulla linea di comando, se è specificato il flag -b, oppure richiederne la digitazione di una specifica).
A questo punto abbiamo il nostro nome utente e la password.

Il file .htpasswd è di questo tipo:

prova:292GS59bnDjfs

Adesso aggiungiamo questo codice al file .htaccess:

AuthType Basic
AuthName Area_Riservata
AuthUserfile /membri/mionick/secret/.htpasswd
<Limit GET POST>
require valid-user
</Limit>

Oppure, se vogliamo usare i gruppi:

AuthType Basic
AuthName Area_Riservata
AuthUserfile /membri/mionick/secret/.htpasswd
AuthGroupFile /membri/mionick/secret/.htgroups
require group admin

In questo caso il file .htgroups sarà di questo tipo:

admin: rebel john cindy

Dove gli admin successivi a rebel vengono immessi con il comando indicati sopra.
La direttiva Require ci permette di specificare quali utenti possono accedere ad una specifica area. Ecco alcuni esempi dell’utilizzo di Require, con il relativo significato:

Require user mark cindy
Require valid-user
Require group admin
Require valid-group

Nel primo caso si dice ad Apache di far passare solo gli utenti mark e cindy, mentre nel secondo caso (valid-user) potranno accedere tutti gli utenti in possesso di un regolare account (utile nel caso in cui il file delle password di apache sia sottoposto a frequenti aggiornamenti). Il terzo esempio lascia passare solo gli utenti che appartengono al gruppo admin, mentre l’ultimo abilita gli utenti che fanno parte di uno qualsiasi dei gruppi definiti.
Di seguito potete trovare un sito che genera automaticamente il contenuto dei file .htaccess e .htpasswd, file comunque da modificare per adattarli al caso specifico, in particolare se vogliamo usare i gruppi.

http://www.webmaster-toolkit.com/htaccess-generator.shtml

Qui potete trovare ulteriori informazioni:

http://www.minidesign.it/mos/view/Altri-appunti/htaccess/Come-proteggere-le-directory-con-htpasswd/