saját php session engine
sziaisztok
nekialltam egy portalos-bejelentkezos oldalnak, a kulcsin tobbnyire mar keszen is van, most allnek neki a bejelentkezes resznek. az alap otlet a php beepitett session fuctionjainak a hasznalata volt, de azt nem tartom ebben az esetben tul gyorsnak/biztonsagosnak, es kulonben is csak arra kellene, hogy a bejelentkezest leellenorizzem..
az en otletem az volt, hogy egy adatbazisban a felhasznalok tablajaban csinalok egy sessionId mezot, ami egy szamot tartalmaz. amikor a felhasznalo bejelentkezik, vagy egy uj oldalra lep, ez a szam mindig ujrageneralodik (random), visszaadodik az oldalnak, az pedig a tovabbi oldalak betoltesenel (ajax) postolja a sessionId-t, amit a betoltott oldal leellenoriz, ujrageneral, es minden kezdodik elorol. esetleg uj oldal betoltesenel nezhetne a legregebbi oldalbetoltes idopontjat... igy talan a tobbszoros bejelentkezest is ki lehetne szurni, sot, azt is, hogy az adatforgalmat figyelve valaki sessionId-t lophasson.
mit gondoltok, erdemes igy csinalni, vagy nagy hulyeseg az egesz?
■ nekialltam egy portalos-bejelentkezos oldalnak, a kulcsin tobbnyire mar keszen is van, most allnek neki a bejelentkezes resznek. az alap otlet a php beepitett session fuctionjainak a hasznalata volt, de azt nem tartom ebben az esetben tul gyorsnak/biztonsagosnak, es kulonben is csak arra kellene, hogy a bejelentkezest leellenorizzem..
az en otletem az volt, hogy egy adatbazisban a felhasznalok tablajaban csinalok egy sessionId mezot, ami egy szamot tartalmaz. amikor a felhasznalo bejelentkezik, vagy egy uj oldalra lep, ez a szam mindig ujrageneralodik (random), visszaadodik az oldalnak, az pedig a tovabbi oldalak betoltesenel (ajax) postolja a sessionId-t, amit a betoltott oldal leellenoriz, ujrageneral, es minden kezdodik elorol. esetleg uj oldal betoltesenel nezhetne a legregebbi oldalbetoltes idopontjat... igy talan a tobbszoros bejelentkezest is ki lehetne szurni, sot, azt is, hogy az adatforgalmat figyelve valaki sessionId-t lophasson.
mit gondoltok, erdemes igy csinalni, vagy nagy hulyeseg az egesz?
Bejelentkezés vs session
Ami a sessionlopást illeti, nem csak ilyen veszélyek vannak, hanem egészen mások is. Csinálhatsz pl IP azonosítást, felhasználószám-figyelést, stb de végeredményben mégis csak oda fogsz kilyukadni, hogy a felhasználóidat is képezni kell.
...
az ip azonositas dolog nem teljesen vilagos... ugy tudom, hogy ip-t lehet valtoztatni, engem pedig baromira zavarna, ha az oldal tiz percenkent kidobna..
a felhasznaloszam-figyeles meg micsoda? hogyan jon a bejelentkezeshez?
Felhasználószám
Ami az IP-t illeti, ezért van ott a pipa sok helyen, hogy IP cím ellenőrzés nélkül.
feltaláljuk újra a kereket?
Abban látok rációt, hogy a session-t adatbázisban tárolod. Ettől még persze a php session kezelését fogod használni... A sessionid újragenerálása sem rossz ötlet, de ha nem https-en viszed a forgalmat, akkor az adatforgalomat figyelő gonosz az új sessionid-t is megszerzi... sőt, már a usernév és jelszó is birtokába kerül, így teljesen felesleges neki session-t lopni, hiszen megvan a login...
nnademegismiert?
>login...
mar megis miert? hiszen en mindig csak az ujrageneralt sessionId-t es a felhasznalonevet kuldenem tovabb a lehivott oldalaknak, a jelszo az adatbazisban fog csucsulni, termeszetesen md5-ben.
forgalom figyelés
Mivel http kapcsolat nem titkosított a jelszó sima szövegként megy a szervernek.
..
új session id
Az meg hogy DB-ben tárolod a session adatokat, annak biztonság szemszögéből viszonylag kevés jelentősége van (webhosting esetén el tudom képzelni, hogy jelentősebb), inkább skálázhatóság miatt lehet érdekes.
Üdv,
Felhő
biztonság
Ha nyílt protokollon megy a beszélgetés, akkor a sessionid váltás is lekövethető, sőt, nem is kell sessiont lopni, hiszen a teljes forgalmat tudja naplózni a rosszarc...
De ez csak amelett szól, hogy érdemes saját kézbe venni a session kezelést, de teljesen más alapokra tenni (kihagyni teljesen a php session kezelését) szvsz nem érdemes.
üdv,
Zila
lehallgatás
Ha nyílt protokollon megy a beszélgetés, akkor a sessionid váltás is lekövethető, sőt, nem is kell sessiont lopni, hiszen a teljes forgalmat tudja naplózni a rosszarc...
Üdv,
Felhő
biztonság
Tk. a php semmi mást nem csinál, hogy ellenőrzi, hogy létezik-e a session sütiben elküldött azonosítónak megfelelő fájl vagy sem. Arról nem is beszélve, hogy a transparent - a címben elküldött - süti nem kis veszélyt rejt, messze el kellene kerülni. - Volt egy fórum, ahol az egyik kedves ember elküldte valakinek a fórum címét egy ismerősnek, csak be volt jelentkezve. Ezután meg az a valaki az ő nevében írt hozzászólásokat.
Szóval, egyáltalán nem a kerék feltalálása, ha biztonságosabb sessionkezelést kpróbálunk készíteni.
cikkek a témában
http://weblabor.hu/cikkek/munkamenetkezeles2
Üdv,
Felhő