php cookie alapú auto-login
Sziasztok!
Auto-login scriptet szeretnék írni. Jelenleg úgy néz ki az authentikációm, hogy aki ad egy jó felhasználó-jelszó párt, annak a session azonosítója bekerül egy táblába, mint azonosított felhasználó, így a megfelelő szolgáltatásokat a továbbiakban eléri. Ha ezzel a módszerrel már bajok vannak, szóljatok, pl. egyáltalán lehet valahogy session azonosítót hazudni?
Namost az auto-logint valahogy úgy képzeltem, hogy ezt a session azonosítót beletenném egy cookie-ba (meg esetleg más információkat is, pl. a webshopban mi volt legutóbb a kosarában, felhasználói adatok, ilyesmik) és annak adnék valami hosszabb lejárati dátumot, mondjuk legalább 3-4 órát, hogy ha bezárja a böngészőt, ne kelljen megint belépnie. Ez az időtartam lehet több is. Namost ezzel gondolom van pár probléma: mi van, ha valaki kézzel megszerkeszti a cookiet, mondjuk átírja benne a lejárati dátumot? Vagy ha mondjuk hosszabb ez az időtartam és valaki ezt a session azonosítót kinézi, majd másnap a saját belépése után a cookie-jába beleírja a session azonosítót és a másik felhasználó nevében bármit megtesz. Kipróbáltam ethereallal egyébként is nagyon jól lehet nézegetni miket küldözgetek a webszervernek, és biztos vagyok benne, hogy létezik olyan program, ami mondjuk egy belső hálózaton figyel és kilopja a cookieban lévő információkat.
Szóval ezt az első megközelítést azzal egészíteném ki, hogy mondjuk ezeket az adatokat konkatenálom, majd valahogy veszteségmentesen kódolom, majd "mycookie" néven beteszem a sütik közé. Ez jól hangzik, mert legalább változtatni nem tud rajta, mert ahhoz dekódolni, változtatni és visszakódolni kéne, de a süti ellopását nem védtem ki, mert ennek a tartalmát ugyanúgy bemásolhatja egy másik user a saját sütijébe, mint ahogy előbb a session azonosítót.
Még egy dolog, kipróbáltam simán, notepaddal megszerkeszteni egy sütit, de azt az explorer nem ismerte fel. Google kidobott rögtön 10 találatot a "cookie editor" keresőszóra, mondjuk nem próbáltam ki, de gondolom a szerkesztés lehetséges és ilyenformán kell foglalkozni a fentebb vázolt kérdésekre.
Mi a véleményetek, milyen jó megoldás(oka)t ismertek?
■ Auto-login scriptet szeretnék írni. Jelenleg úgy néz ki az authentikációm, hogy aki ad egy jó felhasználó-jelszó párt, annak a session azonosítója bekerül egy táblába, mint azonosított felhasználó, így a megfelelő szolgáltatásokat a továbbiakban eléri. Ha ezzel a módszerrel már bajok vannak, szóljatok, pl. egyáltalán lehet valahogy session azonosítót hazudni?
Namost az auto-logint valahogy úgy képzeltem, hogy ezt a session azonosítót beletenném egy cookie-ba (meg esetleg más információkat is, pl. a webshopban mi volt legutóbb a kosarában, felhasználói adatok, ilyesmik) és annak adnék valami hosszabb lejárati dátumot, mondjuk legalább 3-4 órát, hogy ha bezárja a böngészőt, ne kelljen megint belépnie. Ez az időtartam lehet több is. Namost ezzel gondolom van pár probléma: mi van, ha valaki kézzel megszerkeszti a cookiet, mondjuk átírja benne a lejárati dátumot? Vagy ha mondjuk hosszabb ez az időtartam és valaki ezt a session azonosítót kinézi, majd másnap a saját belépése után a cookie-jába beleírja a session azonosítót és a másik felhasználó nevében bármit megtesz. Kipróbáltam ethereallal egyébként is nagyon jól lehet nézegetni miket küldözgetek a webszervernek, és biztos vagyok benne, hogy létezik olyan program, ami mondjuk egy belső hálózaton figyel és kilopja a cookieban lévő információkat.
Szóval ezt az első megközelítést azzal egészíteném ki, hogy mondjuk ezeket az adatokat konkatenálom, majd valahogy veszteségmentesen kódolom, majd "mycookie" néven beteszem a sütik közé. Ez jól hangzik, mert legalább változtatni nem tud rajta, mert ahhoz dekódolni, változtatni és visszakódolni kéne, de a süti ellopását nem védtem ki, mert ennek a tartalmát ugyanúgy bemásolhatja egy másik user a saját sütijébe, mint ahogy előbb a session azonosítót.
Még egy dolog, kipróbáltam simán, notepaddal megszerkeszteni egy sütit, de azt az explorer nem ismerte fel. Google kidobott rögtön 10 találatot a "cookie editor" keresőszóra, mondjuk nem próbáltam ki, de gondolom a szerkesztés lehetséges és ilyenformán kell foglalkozni a fentebb vázolt kérdésekre.
Mi a véleményetek, milyen jó megoldás(oka)t ismertek?
hmm
Persze ez közel sem 100%-os megoldás, csak egy apró de hasznos trükk.