„Jegyezz meg” funkció a Persistent Login modullal.

Gondolom mindenki számára ismerős az automatikus beléptetés funkció: a regisztrált felhasználók belépéskor bepipálhatnak egy checkbox-ot jegyezz meg, emlékezz rám vagy valami hasonló felirattal, aminek eredménye az lesz, hogy a következő látogatáskor nem kell újra beírni a felhasználónév/jelszó párost, az oldal azonnal felismeri őket.

Feladat

Egy PHP webprogramozó szemszögéből elsőre egyszerűnek tűnik a feladat: ki kell állítani egy sütit, ami nem jár le az ablak bezárásakor, azaz nem session süti, és tartalmaz egy véletlen kódot. Adatbázisban pedig elmentjük a véletlen kódot és a hozzá tartozó felhasználót. Ha egy ismeretlen (nem belépett) látogató küld egy ilyen sütit és a véletlen kódot megtaláljuk az adatbázisban, akkor azonnal beléptetjük, nem kérjük tőle a jelszavát.

Egyszerű, pár perc alatt leprogramozható funkció, igaz? Nos a helyzet nem ilyen egyszerű.

Biztonság

Ez a fajta beléptetés jónéhány biztonsági kockázatot rejt magában, amelyeket ki kell küszöbölni, ahhoz hogy nyugodt szívvel használhassuk ezt a fajta beléptető rendszert.

Először is egy felhasználóhoz több ilyen emlékező süti tartozhat. Belép a munkahelyén, otthon az asztali gépén, notebookján, stb… De ennek érdemes egy határt szabni, nem szerencsés, ha minden határon túl nőhet az egy felhasználóhoz tartozó beléptető sütik száma.

Egy ennél is fontosabb tényező, hogy érdemes megkülönböztetni egy hagyományos belépést, ahol megtörténik a felhasználónév/jelszó páros beírása, és egy ilyen megjegyzéssel történt belépést. A kettő nem azonos erejű. Jobban meg lehet bízni abban a munkamenetben (session) amikor a felhasználó ténylegesen beírta a jelszavát. Miért? Az emberek néha leülnek egymás számítógépéhez, és közösen használják. Ha a mi gépünkhöz ülnek le és nem nézünk oda, mindössze néhány másodperc is elegendő ahhoz, hogy egy népszerű oldalon súlyos károkat okozzanak nekünk. Például:

- Megváltoztathatja jelszavunkat, ezzel ellopja a regisztrált profilunkat
- Törölheti regisztrációnkat, ez a lépés általában visszaállíthatatlan.
- Egy közösségi oldalon, pl. IWIW, küldhet üzenetet akár az összes ismerősünknek a mi nevünkben. A barátainknak pedig semmi okuk nem lesz kételkedni abban, hogy mi küldtük az üzenetet.

Drupal megoldás: a Persistent Login modul

A fentiekből jól látszik, hogy több részletkérdésre is figyelni kell, de a Persistent Login modul igazán jó munkát végez ezen a téren:

- Üdvözlő üzenetet tud megjeleníteni, ha a belépés egy emlékező sütivel történt.
- Belépés után kiírja a felhasználónak, hogy hány különböző ilyen emlékeztető sütit állítottak már ki neki, és lehetősége van törölni ezeket.
- Tiltani lehet bizonyos funkciókat az oldalon, amelyeket a felhasználó csakis akkor érhet el ha ténylegesen beírja a jelszavát. Például a jelszó változtatás vagy webáruházban egy rendelés tényleges feladását érdemes beállítani ilyen kiemelt bizonságú funkciónak. Érdekesség, hogy a drupal-ban egy felhasználónak jelenleg nincs lehetősége saját account-jának törlésére. Ez egyébként a Drupal egyik legrégebbi issue-ja: http://drupal.org/node/8 !

Én személy szerint nagyon elégedett vagyok ezzel a modullal, minden projektben ez az első modul amit feltelepítek! Ha másért nem, már csak azért is, mert fejlesztés közben nem kell folyton beirogatni a root jelszót. Természetesen az EdgarPE.hu-n is telepítve van :)

Link: http://drupal.org/project/persistent_login

Visszatértem

Az előző post meglehetősen régen volt, elég sokáig tartott megünnepelni a sikeres diploma megszerzését, majd kipihenni az ünneplést :) De most vége a pihenésnek és újult erővel vetem bele magam a munkába és bloggolásba.

Jót is tett ez a több hetes kihagyás, mert közben jónéhány ötletem támadt ezzel a bloggal kapcsolatban. Tartalmi és megjelenési tekintetben egyaránt vannak terveim, de hosszas ígérgetés helyett inkább azonnal belevágok a munkába. A következő post egy cikksorozat első része:

Legjobb drupal modulok: „Jegyezz meg” funkció a Persistent Login modullal.

Mérnök vagyok!

Pár napig nem volt post és most még néhány napig nem is lesz. Ez azért van, mert 07-01-17-én sikeresen megvédtem a diplomámat, úgyhogy most már a BME végzett diplomás mérnöke vagyok, konkrétan Műszaki Informatikus. A post-ok elmaradása pedig nyilván azért van, mert ünnepelek :)

De nemsokára 200%-osan belevetem magam a munkába, és akkor majd lesz téma is, amiről írhatok! A terveimről az első post-ban beszámoltam.

UPDATE: ebben a postban volt néhány vicces videó, azokat külön post-ba tettem.

Oldalak

Feliratkozás Prunk-Éger Edgár RSS csatornájára