PHP-ban hogyan érdemes kezelni a különböző felhasználókat?
Oldalbetöltés
|
cookie['azenfaszaoldalam_user'] üres
|
cookie['azenfaszaoldalam_user']-be generál egy karaktersorozatot (mondjuk 32 karakter)
|
ezt a karaktersorozatot lementi adatbázisba (pl sessions tábla)
|
a táblában tetszőleges mezőket használsz (pl userid int unsigned, sessionid varchar(32), useragent text, ip varchar(11), lastrefresh timestamp)
Magukat a felhasználókat, az adataikat adatbázisban tárold.
A belépésnél ebből ellenőrzöd, hogy stimmel-e a beírt jelszó hash az eltárolttal (mert ugye nem tároljuk a jelszó, csak a hash értékét!), ha igen, akkor a session-be be lehet állítani, hogy belépett a felhasználó, illetve le lehet benne tárolni adatokat is.
Elég akár csak egy $_SESSION['belepett'] adatot true-ra tenni és utána ezt megnézni, ugyanis a session a SZERVER oldalon tárolódik, a felhasználó (a sütivel ellentétben) nem tudja piszkálni.
A session működését az előző válaszoló szemléltette.
A lényege, hogy a session azonosítóját (id) eltárolja a felhasználó böngészője, a szerver ez alapján a süti alapján tudja, hogy melyik session adatok tartoznak hozzá.
Persze ez az ID önmagában másolható, szóval bele szoktak tenni IP címe ellenőrzést, illetve böngésző "típus" ellenőrzést is.
(Ezeket simán a belépésbél szintén letárolják a sessionben és minden ellenőrzésnél megnézik, hogy egyezik-e a felhasználó IP címe és a böngésző azonosítója a tárolt értékekkel. Ha nem, akkor simán érvénytelenítik a munkamenetet, mert esélyes, hogy valaki ellopott egy session ID-t.)
Maguk a session ID-k elég hosszú, random értékek, az ütközésnek és a kitalálásnak kicsi az esélye. (Illetve az ütközést a szerver a session id generálásnál kiküszöböli.)
Ezen kívül lehet "házilag" is session-t "csinálni", például ha te generálsz "session id"-t, amit egy adatbázisban tárolsz a hozzá tartozó adatokkal. Ez kicsit macerásabb, most nem részletezem, mivel az sima session is jól működik.
Technikailag ugyan úgy használható, mint a sima sütik, csak annyi a különbség, hogy a felhasználó nem tud benne matatni kedvére.
Ez is csak részben igaz.
Megoldható, hogy megmaradjon és a működésük között JELENETŐS eltérés van, de ezt korábban részleteztem is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!