+ Rispondi alla Discussione
Risultati da 1 a 1 di 1
  1. #1
    Member
    Data Registrazione
    Jul 2010
    Messaggi
    44
    Totale 'Thanks' ricevuti da questo Utente :
    0 Per questa Discussione
    4,294,967,290 Totale

    Post Proteggere directory con password usando .htaccess

    Introduzione

    Se hai un sito che contiene dei dati sensibili, come informazioni sui tuoi utenti, indirizzi email, documenti interni etc. ti sari sicuramente posto il problema di dove conservare questi file, in modo da escludere l'accesso a persone non autorizzate. Se il tuo sito è in hosting, è molto probabile che il server usi Apache

    Il modo più rapido per proteggere una directory tramite Apache consiste nell'implementare un'autenticazione via web. Htaccess è il metodo più comune, e verrà spiegato in questa guida.

    Requisiti

    Prima di continuare, assicurati di rispettare queste condizioni:

    * il tuo webserver è Apache;
    * puoi connetterti al server via FTP e telnet/ssh;
    * conosci i comandi base per navigare all'interno delle directory del tuo server;
    * riesci a stabilire il percorso assoluto delle directory;

    Il file .htaccess

    Htaccess è uno schema di autenticazione username/password che entra in gioco quando una determinata directory o un file vengono richiesti. Htaccess è un metodo di autenticazione “plain-text”, il che vuol dire che username e password vengono inviati in semplice formato testo, non criptato. Sebbene ci siano molte poche possibilità che qualcuno intercetti i tuoi dati, l'autenticazione tramite htaccess è sicura quanto una connessione telnet o ftp.

    Per proteggere una directory del tuo webserver usando .htaccess, devi creare due file:

    1. .htaccess: questo file contiene le preferenze ed i dettagli riguardo ai metodi di autenticazione e i permessi per la directory.
    2. .htpasswd: questo file contiene una lista criptata di combinazioni di username e password che viene usata da Apache insieme al file .htaccess per concedere o negare l'accesso

    E' importante sottolineare che un file .htaccess presente nella directory /dir1 proteggerà anche tutte le sotto-directory di /dir1, come /dir1/sub1, a meno che non ci sia una coppia di file .htaccess e .htpasswd nella directory /dir1/sub1. Se ci fosse, questa varrebbe solo per /dir1/sub1 e tutte le sottocartelle (ad esempio /dir1/sub1/subsub1).

    Il file .htaccess funziona come uno script di configurazione, e fornisce ad Apache alcuni dettagli ed opzioni quando un utente viene autenticato. Con un editor di testi crea un nuovo file chiamato “.htaccess” (le virgolette potrebbero essere necessarie se usassi, ad esempio, blocknotes, per evitare che venga aggiunta l'estensione .txt). Inserisci il seguente testo nel file .htaccess:

    AuthUserFile /www/miositoweb/miacartella/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Cartella Protetta"
    AuthType Basic

    <Limit GET>
    require valid-user
    </Limit>


    Come avrai notato, il file .htaccess è diviso in due sezioni, la prima parte per i dettagli di autentificazione e la seconda parte con i permessi per l'utente. Entriamo in dettaglio.

    AuthUserFile /www/miositoweb/miacartella/.htpasswd

    Nella prima linea è indicato il percorso assoluto al file .htpasswd. Questo file contiene una lista di combinazioni di username e password che Apache userà per verificare tutti i tentativi di login (maggiori dettagli di seguito).

    Nell'esempio il file .htpasswd è localizzato nella directory /www/miositoweb/miacartella. Devi cambiare questo percorso con quello della directory che vuoi proteggere. Per conoscere il percorso assoluto devi portarti via telnet/ssh nella cartella e dare il comando “pwd”.

    AuthGroupFile /dev/null

    La seconda linea fa riferimento ad un file per l'autentificazione di gruppi. Questo potrebbe essere utile per separare gli utenti in gruppi distinti, come studenti e professori o staff e visitatori ad esempio. Siccome non ne faremo uso, indichiamo /dev/null, in modo tale da “avvisare” Apache che il file non esiste.

    AuthName "Cartella Protetta"

    Nella terza linea, indichiamo quella che Explorer chiama “Area Autenticazione”, come puoi vedere in questa immagine:

    Ovviamente puoi scegliere qualsiasi cosa. E' molto importante racchiudere il testo tra due virgolette (” e “).

    AuthType Basic

    La variabile AuthType imposta il tipo di autentificazione per la richiesta. Dato che stiamo usando una semplice autentificazione via web, la impostiamo su Basic. Altri valori possibili sono PGP e Digest.

    La seconda sezione del nostro file .htaccess, contiene le richieste e i metodi di risposta a cui gli utenti autenticati hanno accesso:

    <Limit GET>
    ...
    </Limit>

    Nel nostro file .htaccess consentiamo agli utenti autorizzati l'accesso a tutte le parti del sito in cui il metodo GET è permesso (in poche parole, gli utenti possono vedere una pagina, ma non possono compilare form etc). Altri limiti includono PUT e POST. Per ampliare le possibilità degli utenti, basta aggiungere PUT e/o POST nel primo tag, in questo modo:

    <Limit GET POST PUT>

    <Limit GET>
    require valid-user
    </Limit>


    Tra i tag <Limit> e </Limit>, possiamo inserire una lista di utenti a cui intendiamo concedere l'accesso alle cartelle protette, precendendo '’username con “require user”, ad esempio:

    require user mario
    require user maria
    require user marino

    In alternativa, (come ho fatto nel mio file .htaccess) si può garantire l’accesso a tutti gli utenti con l'esatta accoppiata username/password:

    require valid-user

    Questo è tutto quello che riguarda una semplice spiegazione del file .htaccess. Quando un utente non autenticato tenta di visitare la directory protetta, il file .htaccess viene caricato ed elaborato da Apache, che fa visualizzare la maschera per l'inserimento di username e password. Arrivati a questo punto non resta che aggiungere utenti alla lista delle persone autorizzate.

    Questo viene fatto tramite il programma htpasswd.

    Il file .htpasswd

    Il file .htpasswd è molto più semplice del file .htaccess, dato che può essere composto anche da una sola linea. In realtà è composto da una lista di coppie nome/valore, che rappresentano le combinazioni di username/password. Ogni combinazione di username/password è separata da un ritorno a capo e viene usata da Apache per determinare se un utente che tenta di accedere alla directory protetta esiste, e se la password che ha fornito è valida.

    Prima di creare il file .htpasswd, devi caricare sul server il file .htaccess (che abbiamo appena creato), nella directory che intendi proteggere. Questo può essere fatto con un qualsiasi client ftp. L’importante che l’upload avvenga in modalità ASCII.

    Per creare il file .htpasswd, dovrai connetterti al tuo server usando telnet/ssh.
    Una volta collegato, dovrai portarti nella directory che intendi proteggere, usando quindi il comando:

    cd /www/miositoweb/miacartella

    Ovviamente /www/miositoweb/miacartella varierà in base alla cartella che intendi proteggere.

    Ora dobbiamo eseguire il programma htpasswd. Questo è un semplice programma che accetta 3 parametri:

    htpasswd [opzioni] [file .htpasswd] [nuovo username]

    Per il primo parametro, useremo “-c”. Questo informa il programma che stiamo creando un nuovo utente. Per il secondo parametro, digiteremo “/www/miositoweb/miacartella/.htpasswd” (oppure “.htaccess solamente, a patto di trovarci nella cartella /www/miositoweb/miacartella). Per l’ultimo parametro, indicheremo il nome dell’utente che vogliamo creare, ad esempio “giovanni”. Riassumendo, il comando per creare il nuovo utente giovanni, sarà il seguente:

    htpasswd -c /www/miositoweb/miacartella/.htpasswd mario

    Dando il comando come indicato nella riga precedente (ovviamente sostituendo il percorso del file .htpasswd) ti verrà chiesto di digitare due volte la password che vuoi associare all’utente mario.

    Per aggiungere un altro utente, non sarà più necessario usare il parametro “-c” (che serve a creare il file .htpasswd). Il comando sarà quindi:

    htpasswd /www/miositoweb/miacartella/.htpasswd mario

    Ovviamente si dovrà inserire due volte la password

    Questo è tutto il necessario per proteggere le directory! Possiamo controllare se il sistema funziona, aprendo il browser e collegandoci all’indirizzo corrispondente alla directory protetta. Si dovrebbe aprire un box in cui è possibile inserire username e password.

    Inserendo mario e la password che avevate digitato, e cliccando su ok, dovreste avere accesso alla directory /miacartella. Inserendo 3 o più volte un’accoppiata username/password volutamente errata, dovrebbe esservi impedito l’accesso, con un errore 401.

    Conclusioni

    Htaccess è uno dei metodi più popolari usato su server Apache perché è semplice e veloce da attivare e non richiede modifiche sostanziali ad Apache stesso.
    Ultima modifica di demo; 14th April 2011 alle 01:18 PM
    Rispondi Citando Rispondi Citando

+ Rispondi alla Discussione

Discussioni Simili

  1. Proteggere un file con password usando il file .htaccess
    Di demo nel forum Amministrazione e Configurazione Server
    Risposte: 0
    Ultimo Messaggio: 14th April 2011, 12:58 AM

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato