In acest capitol veti invata cum sa protejati directoare si fisiere din site-ul dv. prin adaugarea de parola la accesarea acestora din exterior
1. Protectia cu parola a unui director
Uneori este nevoie sa protejam accesul la un anumit director din site, dar sa accordam totusi accesul extern anumitor persoane. Pentru aceasta este utila adaugarea unei parole.
Exista mai multe metode de a realiza acest lucru, cu ajutorul limbajelor de programare web: PHP, ASP, Perl.... Aici va fi prezentat modul de parolare a unui director folosind fisierul ".htaccess".
In primul rand trebuie sa creati un fisier numit ".htpasswd", care va contine numele de utilizator si parola criptata, apoi în fisierul ".htaccess" este introdusa calea catre ".htpasswd".
Pentru utilizatorii de UNIX, iata cum puteti crea prin intermediul shell-ului un fisier htpasswd (cum puteti crea parola criptata):
[mar@www mar]# cd /var/www/domeniu_meu/privat/
[mar@www privat]# htpasswd -c .htpasswd username
New password:
Re-type new password:
Adding password for user username
[root@www privat]#
- "cd /var/www/domeniu_meu/privat/" - ne deplasam catre directorul pe care dorim sa-l protejam, aici "privat"
- "htpasswd -c .htpasswd username" - creaza un utilizator "username" dupa care vom fi întrebati de parola
Puteti adauga utilizatori noi care sa aiba acces la acelasi director prin intermediul comenzii "htpasswd .htpasswd utilizator2", de data aceasta însa nu mai folositi optiunea "-c".
Daca doriti sa vedeti rezultatul, deschideti cu un editor de text fisierul ".htpasswd", veti descoperi ceva de genul:
username:$1$tEOlbaw7$v/mlwlw/pv1e34dB2JuE.1
utilizator2:$1$tEOlhyw7$v/mlw5w/pv1d62d92JmM.2
Daca doriti sa anulati accesul unui utlizator, stergeti linia respectiva.
Dupa ce au fost astfel create "utilizator" si "parola" in .htpasswd, introduceti urmatorul cod in .htaccess:
AuthType basic
AuthName "Acest director este protejat"
AuthUserFile /usr/local/www/domeniu_meu/privat/.htpasswd
AuthGroupFile /dev/null
Require valid-user
- Unde "/usr/local/www/domeniu_meu/privat/.htpasswd" este calea catre fisierul .htpasswd, care poate fi oriunde pe server.
- Linia care incepe cu "AuthName" contine textul care va fi afisat în promterul de login.protejat.
.htaccess trebue pus in fisierul protejat
Pentru serverele Apache instalate in Windows, pentru crearea fisierului .htpasswd cu parola criptata, urmati urmatorii pasi:
1. In Start - Run scrieti cmd apoi dati Enter
2. In prompter-ul care apare, in linia de comanda deplasativa (folosind comand ms-dos "cd") pana in directorul care contine fisierul "htpasswd.exe", de obicei "apache/bin"
3. Dupa ce ati intrat in directorul specificat, scrieti in linia de comanda: htpasswd -c .htpasswd nume_utilizator si apasati Enter (Parametrul "-c" indica crearea fisierului .htpasswd daca acesta nu exista.)
4. Vi se va solicita sa scrieti parola, de doua ori.
- Fisierul cu parole ".htpasswd" va fi creat în acelasi director cu executabilul htpasswd.exe. Daca doriti puteti sa-l mutati în alta parte, dar sa specificati in ".htaccess" calea corecta catre acesta.
Daca ulterior veti dori sa adaugati si alti utilizatori pentru accesarea directorului protejat, scrieti aceeasi comanda, fara "-c".
Pentru ca aceasta modalitate de protectie cu parola sa functioneze asigurati-va ca în fisierul de configurare "httpd.conf" a serverului Apache aveti comanda "AllowOverride all" si nu (AllowOverride none) - in linia unde 'AllowOverride' este precedat de un comentariu (marcat cu #) despre .htaccess.
2. Protectia cu parola a unui fisier
Daca doriti, puteti proteja cu parola si un anumit fisier, folosind .htaccess.
Ca si in cazul protectiei directoarelor, explicata mai sus, si aici este nevoie de fisieru ".htpasswd" in care sunt trecute numele si parola criptata. Crearea acestui fisier se realizeaza la fel ca in exemplul prezentat mai sus.
Dupa ce ati creat fisierul .htpasswd, adaugati in ".htaccess" urmatoarele comenzi:
# protejarea cu parola a unui fisier
<Files fisier.ext>
AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user
</Files>
- Unde "fisier.ext" este numele fisierului care va fi protejat, iar "/home/path/.htpasswd" este calea catre fisierul ".htpasswd".
Plasati fisierul .htaccess în directorul in care se afla fisierul protejat.