Come creare un’area riservata in 5 minuti?

Ti sarà certamente capitato di dover realizzare un’area riservata nel tuo sito. Se non hai necessità particolari a livello di gestione ed il tuo bisogno è limitato al richiedere dei dati di autenticazione per poter accedere ad una cartella, è certamente sproporzionato sviluppare un sistema in PHP/Mysql/Sessioni come si farebbe in altri casi.

In questo articolo vedremo come implementare un’area riservata in pochi minuti utilizzando ancora una volta le potenzialità di Apache e dei files .htaccess.

Creiamo un lista di utenti autorizzati

Innanzitutto dovremo creare una lista di utenti autorizzati con relative password in questo formato (utilizza un normalissimo editor di testo):

utente1:passwordcriptata
utente2:passwordcriptata
utente3:passwordcriptata

Per criptare le password è possibile utilizzare il tools di Apache da riga di comando, utilizzando la seguente sintassi:

htpasswd –c /precorso_completo_e_assoluto/.htpasswd utente1

Una volta dato questo comando, verrà richiesto di inserire la password per due volte. In seguito il file .htpasswd verrà modificato con l’aggiunta di utente1 con relativa password correttamente criptata.
Oppure (molto più semplice) utilizza uno dei numerosi tools online, ad esempio questo:

https://www.4webhelp.net/us/password.php


Se lavori con Apache su piattaforma Windows dovrai invece per forza utilizzare il tool di Apache, altrimenti non funzionerà.


Salva ora il tuo file come .htpasswd (nessun nome – estensione htpasswd) e posizionalo in una cartella sicura e non leggibile del web server. Nel nostro caso, andrà benissimo la cartella stessa che intendiamo proteggere.

Verifichiamo il percorso assoluto della cartella pubblica

Verifica ora il percorso assoluto della cartella pubblica del tuo web server. Se sei in hosting il percorso potrebbe essere un po’ strano in quanto un unico web server gestisce molti siti tramite il sistema dei virtual host. Per verificare questo percorso, esegui il seguente script php, salvandolo nella root del sito e digitando l’url della pagina che contiene lo script:

<?php
echo  $_SERVER["DOCUMENT_ROOT"];
?>

Il risultato potrebbe essere qualcosa del genere:

/home/virtual/virtual-site95/var/www/html/

Questa è la posizione della tua cartella pubblica. Ci serve conoscere questo percorso in quanto dovremo indicare con esattezza dove si trova il file .htpasswd.

Configuraimo il file .htaccess

Ora crea il file .htaccess che avrà questo formato:

AuthUserFile   /home/virtual/virtual-site95/var/www/html/cartella_da_proteggere/.htpasswd
AuthName AreaRiservata
AuthType  Basic
require user utente1
require user utente2

Se hai già un file .htaccess nella cartella, aggiungerai semplicemente queste direttive a quanto contenuto nel file.
Come vedi è necessario indicare con AuthUserFile il percorso del file .htpasswd, che noi abbiamo posizionato nella cartella che intendiamo proteggere, la stessa dunque nella quale salveremo il file .htaccess.
Con AuthName possiamo stabilire un messaggo che apparirà nella finestra del login:

AuthType definisce il tipo di autenticazione. Oltre a “basic” abbiamo anche il tipo “digest“.

Nell’ultima riga infine diciamo che a quest’area sono ammessi gli utenti utente1 e utente2. Anche se utente3 fornisse la giusta password, non sarebbe ammesso.In questo modo possiamo utilizzare lo stesso file .htpasswd per diverse aree protette, e tramite il file .htaccess definire ad esempio che nella cartella “x” possono entrare tutti, mentre nella cartella “y” solo utente1 e utente2.  Naturalmente la cartella “x” e la cartella “y”avranno al loro interno un file .htaccess diverso.
Nel caso in cui volessimo autorizzare tutti gli utenti presenti nel file .htpasswd, basta scrivere nell’ultima riga del file .htaccess:

require valid-user

Conclusioni

Se non hai necessità particolari, quello che abbiamo appena visto è un modo semplice e veloce per proteggere le tue cartelle.

Tag: ,

L'autore

Maurizio è sposato con la triade PHP - MySql - Apache e, non pago, ha un'amante chiamata jQuery. Ha un blog dove cerca di descrivere nei minimi particolari sia la moglie che l'amante. La sua vera specialità è la realizzazione di gestionali complessi anche se non rifiuta mai un sito web. +

Sito web dell'autore | Altri articoli scritti da

Articoli correlati

28 commenti

Trackback e pingback

  1. Perché non sottovalutare la sicurezza del tuo sito Wordpress | Your Inspiration Web
    […] non è così strano avere un IP statico. In caso potreste voler proteggere la cartella wp-admin realizzando un’area riservata…