Si necessites protegir un directori amb usuari i contrasenya, una de les opcions és utilitzar els fitxers .htaccess i .htpasswd.
El fitxer .htaccess té molts usos, com per exemple redirigir les nostres pàgines web, restringir l’accés a un directori, etc. Pots veure més exemples a Utilitzar les rewrite rules en .htaccess.
El fitxer .htpasswd desarà els noms d’usuari i contrasenyes de cada restricció. És important tenir en compte que el fitxer .htaccess creat per restringir l’accés s’ha d’ubicar dins del directori que volem protegir.
.htaccess
AuthUserFile /var/www/vhosts/domini.com/private/.htpasswd
AuthName DirectoriProtegit
AuthType Basic
require user UsuariDomini
El .htaccess anterior és un clar exemple de restricció. Revisem pas a pas les diferents opcions indicades:
AuthUserFile /var/www/vhosts/domini.com/private/.htpasswd
En aquest punt s’ha d’indicar el camí absolut del servidor cap al fitxer .htpasswd, que, com hem comentat abans, és on desarem les dades d’accés dels usuaris. Aquest fitxer no s’hauria d’ubicar mai dins de la carpeta pública del domini (normalment /httpdocs o /public_html), ja que seria un greu error de seguretat que la gent pogués descobrir les dades d’accés dels usuaris.
Si per alguna raó no fos possible ubicar el fitxer .htpasswd fora del contingut públic, recomanem que com a mínim se’n modifiqui el nom, per exemple .89lasa12, ja que seria més difícil per a possibles usuaris no desitjats esbrinar quin nom té el fitxer.
AuthName DirectoriProtegit
Quan intentis accedir mitjançant el navegador al directori protegit, apareixerà una finestra per introduir usuari i contrasenya, i un avís que indica que estem intentant accedir. Aquesta opció és configurable: només has de modificar DirectoriProtegit pel text que vulguis que es mostri al quadre emergent. Aquesta línia només té un efecte estètic.
AuthType Basic
Opció que indica que el tipus d’autenticació és bàsic.
require user UsuariDomini
En aquesta línia s’indica que únicament l’usuari UsuariDomini pot accedir al directori.
En cas que vulguis afegir més usuaris, pots fer-ho així:
require user UsuariDomini UsuariDomini2
Hi ha moltes opcions pel que fa al control d’accessos, com per exemple protegir fitxers concrets:
AuthUserFile /var/www/vhosts/domini.com/private/.htaccess
AuthName DirectoriProtegit
AuthType Basic
<Files “fitxeraproteger.php”>
require user UsuariDomini
<Files>
.htpasswd
El fitxer .htpasswd és el que emmagatzema els accessos d’usuaris i contrasenyes que vulguis utilitzar per protegir els directoris o fitxers restringits mitjançant el fitxer .htaccess.
En els exemples següents ens referirem a aquest fitxer com a .htpasswd, però tal com hem indicat abans, pots assignar-li el nom que vulguis.
Les dades es desen al fitxer .htpasswd amb el format usuari:contrasenya i en línies diferents, com per exemple:
UsuariDomini:AQTm0UkcUgb1M
UsuariDomini2:m1JcIlg0b23M
Com pots veure, les contrasenyes venen encriptades per defecte si es creen amb el comandament htpasswd d’Apache. Si disposes d’un servidor Apache i hi accedeixes mitjançant SSH, podràs executar els comandaments necessaris per afegir usuaris al fitxer .htpasswd.
Un cop dins, pots executar l’ordre de diferents maneres, segons si vols que creï automàticament el fitxer o que mostri per pantalla la informació per després afegir-la manualment al fitxer .htpasswd:
htpasswd -nb UsuariDomini contrasenya
Aquesta línia mostrarà per pantalla la cadena que has d’afegir manualment al teu fitxer .htpasswd.
htpasswd -cb .htpasswd UsuariDomini contrasenya
Aquesta línia escriurà directament al fitxer indicat (en aquest cas .htpasswd, però pots especificar-ne un altre).
Un cop afegit l’usuari al fitxer .htpasswd i configurat el fitxer .htaccess, el directori o fitxer ja hauria d’estar protegit amb usuari i contrasenya.
A la documentació oficial d’Apache trobaràs més informació sobre .htpasswd i .htaccess.