back to top

Limitare lโ€™accesso ad una cartella del sito mediante .htaccess e .htpasswd

In questo articolo, dedicato a chi utilizza il web-server Apache, vedremo come limitare lโ€™accesso ad un intero sito o ad una specifica cartella ai soli utenti muniti di username e password. In realtร  esistono diversi sistemi per creare aree "riservate" tuttavia, senza volerci addentrare nello sviluppo di sistemi di autenticazione, possiamo raggiungere questo obiettivo in modo piuttosto semplice.

Per creare la nostra "area riservata", infatti, possiamo semplicemente fare ricorso al solito file .htaccess in combinazione con .htpasswd: attraverso lโ€™utilizzo congiunto di questi due file di sistema di Apache, infatti, รจ possibile creare vere e proprie aree protette e limitare lโ€™accesso, ad esempio, allโ€™area di amministrazione o a cartelle contenenti documenti riservati.

Il file .htaccess

Per prima cosa impostiamo il contenuto del file .htaccess come segue:

AuthName "Area Protetta"
AuthType Basic
AuthUserFile /home/siti/www.sito.com/privato/.htpasswd
Require valid-user

Come potete vedere nel nostro file .htaccess abbiamo specificato quattro direttive, vediamole nel dettaglio:

  • AuthName: questa direttiva รจ utilizzata per specificare un nome alla nostra area riservata (possiamo, ovviamente, assegnare il nome che riteniamo piรน adatto al nostro scopo);
  • AuthType: serve ad indicare il tipo di autenticazione (esistono diversi tipi di autenticazione in Apache, tuttavia nel nostro caso il valore Basic risulta essere assolutamente idoneo);
  • AuthUserFile: attraverso questa direttiva dobbiamo specificare il percorso completo (path) del file .htpasswd che andremo ad analizzare in seguito (attenzione: non potete utilizzare percorsi relativi ma dovete sempre specificare il percorso assoluto!);
  • Require: รจ possibile specificare quale utente o gruppo รจ legittimato a visualizzare i contenuti protetti; nel nostro caso abbiamo specificato valid-user, cioรจ qualsiasi utente tra quelli indicati nel file .htpasswd;

Una volta creato o modificato il nostro file .htaccess dovremo semplicemente salvarlo allโ€™interno della cartella che desideriamo proteggere da occhi indiscreti. Eโ€™ evidente che se inseriamo il nostro file .htaccess nella root del sitoโ€ฆ ad essere protetto sarร  lโ€™intero sito web!

Il file .htpasswd

Il file .htpasswd deve trovarsi esattamente nel punto indicato nella direttiva AuthUserFile del file .htaccess. Allโ€™interno di questo file vengono specificati gli utenti (e le relative password) legittimati a visualizzare i contenuti protetti. Questa la sintassi di questo file:

utente1:password1_criptata
utente2:password2_criptata
utente3:password3_criptata

Per creare il file .htpasswd possiamo seguire due strade:

1) se abbiamo accesso alla shell del nostro server effettuiamo il login sulla macchina e spostiamoci nella cartella in cui dovremo creare il file in questione:

cd /home/siti/www.sito.com/privato/

e digitiamo:

htpasswd -c .htpasswd nome_utente

ora il sistema ci chiederร  la password da associare a questo utente, password che sarร  successivamente necessario confermare. Ed ecco fatto: il nostro sistema ha generato per noi il file .htpasswd!

Se abbiamo giร  creato in precedenza un file .htpasswd e vogliamo semplicemente aggiungere un utente dobbiamo digitare:

htpasswd .htpasswd nome_utente

Anche in questo caso ci verrร  richiesta la password da assegnare la nuovo utente. Dopo averla confermata il file .htpasswd si aggiornerร  con la nuova utenza.

2) qualora non si abbia accesso alla shell del server sarร  necessario ricorrere ad un piccolo espediente. In sostanza possiamo creare "a mano" il nostro file .htpasswd facendo ricorso ad uno dei tanti script e tool reperibili in Rete. Tra questi segnalo il nostro tool per la creazione del file .htpasswd presente allโ€™interno della collezione di Toolset.it

Una volta generato il file non resterร  che salvarlo ed uploadarlo nella nostra cartella web mediante un comune client FTP.

Perchรจ tutto funzioni correttamente, ovviamente, รจ necessario che il file .htaccess si trovi nella stessa cartella che si desidera proteggere; non รจ invece necessario che nella stessa cartella si trovi .htpasswd: lโ€™importante, come giร  detto, รจ che sia indicato correttamente il percorso per raggiungerlo.

Ora proviamo ad accedere mediante http alla cartella protetta; se tutto funziona correttamente il web-server dovrebbe restituirci un prompt di accesso in cui inserire user e password.

accesso protetto con .htpasswd

Conclusioni

Questo tipo di sistema di autenticazione puรฒ rivelarsi molto utile qualora si abbia la necessitร  di mettere in sicurezza, per un numero ristretto di utenti, alcuni contenuti come, ad esempio, lโ€™area di amministrazione del sito o alcune funzionalitร  come, ad esempio, lโ€™upload di file. Viceversa questo sistema risulterร  sicuramente non adatto ad esigenze piรน complesse come, ad esempio, la creazione di community o altri servizi in cui lโ€™accesso รจ offerto ad una molteplicitร  di utenti: in tali casi sarร  sicuramente necessario ricorrere a sistemi di autenticazione server-side sviluppati in PHP o con altri linguaggi di scripting.

Altri contenuti interessanti

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

ERR_TOO_MANY_REDIRECTS: cosโ€™รจ e come risolvere lโ€™errore

L'errore ERR_TOO_MANY_REDIRECTS si verifica quando un browser tenta di...

Lucchetto HTTPS barrato di rosso: cosa significa e come risolvere

Il lucchetto HTTPS barrato di rosso mostrato dal browser...

NGinx: cosโ€™รจ, come funziona e perchรฉ conviene usarlo

Prima di parlare di NGinx, delle sue caratteristiche e...

Errore 410: cosโ€™รจ, quando si verifica e come risolvere (se necessario)

Il codice di stato HTTP 410 (o โ€œGoneโ€), piรน...

Errore 451 Unavailable For Legal Reasons: cosโ€™รจ e quando si verifica

L'errore HTTP 451 Unavailable For Legal Reasons รจ un...
Pubblicitร