Jelszavas védelem

A htaccess lehetőséget ad könyvtárak jelszavas védelmére.

PÉLDA: Nyissuk meg az alábbi linket:

/jelszavasvedelem/

A link megnyitásakor a böngésző egy felhasználónevet és egy jelszót kér. A könyvtár tartalmához csak egy felhasználónév és egy jelszó ismeretében férhetünk hozzá. Ebben a példában a felhasználónév: "infojegyzet" a jelszó: "htaccess". Írjuk be a felhasználónevet és a jelszót, és nézzük meg a könyttár tartalmát!

Ennek a jelszavas védelemnek a létrehozása kissé bonyolultabb az előző, csak 1-2 sort tartalmazó kódoktól, de még így is rendkívül egyszerű.

A .htpasswd file

Első lépésként szükség van egy file-ra, amiben a felhasználónév-jelszó kombinációkat tároljuk. A file neve ".htpasswd" Ugyanúgy ponttal kezdődik, mint a ".htaccess" ,a mentésére, szerkesztésére, szerverre való feltöltésére is ugyanazok a szabályok vonatkoznak.

A .htpasswd file minden sora egy felhasználó adatát tartalmazza. A sor szerkezetileg úgy néz ki, hogy elől van a felhasználónév, aztán kettőspont, majd a jelszó kódolt formában. A .htpasswd file-ba ezt kell bemásolnunk, és elmentenünk.

A fenti példában a felhasználónév "infojegyzet" a jelszó "htaccess" volt. Ez így néz ki a .htpasswd file-ban:

infojegyzet:$apr1$p59i70lq$is...z...a...h...v...1

Persze a jelszó kódolt formáját elő is kell állítani valahogy. A netről letölthetünk .htpasswd generáló programokat, de online programokat is használhatunk erre a célra, pl. ezt az online jelszógenerálót

A .htpasswd file-ban nem csak egy, hanem több felhasználót is megadhatunk. A file-nak annyi sora van, ahány felhasználót létrehozunk, minden felhasználó külön sor.

A .htpasswd file-t célszerű abba a könyvtárba feltölteni, amit védeni szeretnénk, de a többi parancstól eltérően ezt bárhová, akár a gyökérkönyvtárba is tölthetjük.

A védelem beállítása

Az alábbi kóddal tudjuk védeni a könyvtárunkat, de ezt ne másoljuk be egyszerűen ebben a formában, mert testre kell szabni!

AuthType Basic
AuthName "Jelszovedett Ovezet"
AuthUserFile /usr/local/var/www/html/.htpasswd
require valid-user

Az első sort ("AuthType Basic") hagyjuk így, ez az alapszintű védelmet jelenti, általában ez is bőven elég. A negyedik sor "require valid-user" azt köti ki, hogy csak érvényes felhasználónévvel lehet belépni az oldalra. A második sorban az "AuthName" után beírhatunk bármilyen szöveget, a böngészőben felugró jelszókérő ablak azt a szöveget fogja megjeleníteni.

A harmadik "AuthUserFile" kezdetű sorban kell megadni, hogy a szerveren hol van a jelszavakat tartalmazó .htpasswd file. Itt két dologra kell figyelni:

  1. A file elérési útját abszolút módon, és nem a saját gyökérkönyvtárunkhoz viszonyítva kell megadni. Mivel a saját gyökérkönyvtárunk is egy alkönyvtár a szerveren, ezért "magasabb" szintről indul a hierarchia. A fenti kódban leírt elérési út egy jellemző példa arra, hogy egy közösen használt webszerveren milyen úton érhető el a file, de ez az adott kiszolgáló beállításaitól függően más is lehet. Ha pár próbálkozás után nem találjuk el, próbáljuk ki az itt látható trükköt, vagy esetleg kérdezzük meg a szerverüzemeltetőt, hogy mi a saját gyökérkönyvtárunk abszolút elérési útvonala.

  2. Amint látjuk, nem csak a könyvtárat, hanem magát a .htpasswd filenevet is ki kell írni. Ez egyben azt is jelenti, hogy a ".htpasswd" elnevezés csak konvenció, magát a file-t ténylegesen máshogy is el lehet nevezni. Ha másként neveznénk a jelszavakat tartalmazó file-t, akkor csak nyugodtan, arra azonban figyeljünk, hogy mindenképpen ".ht"-vel kezdődjön. Ennek az a magyarázata, hogy e legtöbb webszerver úgy van beállítva, hogy a ".ht"-vel kezdődő file-ok azok a rejtett file-ok, amikor a webszerver semmiképpen nem szolgáltat ki közvetlenül.

Egyéb tudnivalók

Ez a védelmi mód elsősorban arra való, hogy közvetlenül előre meghatározott felhasználók részére hozzunk létre titkos területet. Én pl. arra használom, hogy ha ismerősökkel közös nyaraláson vagyok, akkor ilyen védelemmel teszem fel a közös fényképeinket, ha e-mailen már nem lehet őket átküldeni. Olyan portál létrehozására, ahol bárki tetszőlegesen regisztrálhat, változtathatja a jelszavait, stb. ez a módszer nem alkalmas, oda php és sql alapú beléptető rendszert érdemes alkalmazni.

Fontos, hogy a felhasználónevek és jelszavak a böngésző és a szerver között titkosítás nélkül utaznak a hálózaton, így elvileg - bár nem túl valószínű - megfelelő eszközökkel lehallgatható. Szerintem ettől még nyugodtan használható szinte bármilyen célra, de azért az internet banki jelszavamat nem tárolnám ilyen helyen.