Autor Zpráva
RiZe
Profil
Chtěl bych se optat na váš názor ohledně bezpečnosti mého přihlašovacího systému. Ten nevyužívá standardních sessions v PHP. Místo toho mám v databázi tabulku pro sessions, která má sloupce pro session id, user id, start session, konec její platnosti, IP uživatele, agent uživatele a automatické přihlášení. Při přihlášení se vygeneruje unikátní session ID, zjistí se údaje uživatele (ID, ...), zapíše se session do databáze a vytvoří se dvě cookie se Session ID jedna, a s daty druhá. Po vypršení platnosti Session ID (řádek platnosti v DB), dojde k vygenerování nového ID, nové nastavení cookies atp. Při odhlášení se smaže záznam z databáze a odstraní cookies. Pokud má uživatel automatické přihlášení, tak se při přístupu zjistí jen platný session id (opět podle data vypršení) a vygeneruje se nový, nebo se ponechá stávající. Samozřejmě se v průběhu pohybu na stránkách kontroluje IP a Agent, a pokud se něco z toho změní, dojde k zneplatnění session a odhlášení uživatele.

Můj dotaz. Co byste na tom vylepšili, nebo předělali. Doufám, že jsem všechno popsal dobře, v případě nesrovnalostí opravím na pravou míru ;-). Díky
WertriK
Profil
vytvoří se dvě cookie se Session ID jedna, a s daty druhá

Jaké data tam ukládáš ?
tiso
Profil
RiZe čo Ti bráni použiť session, keď to robíš takto? btw. stačí Ti jedna cookie, dáta si zistíš z DB...
RiZe
Profil
WertriK
Daty myslím uživatelovo ID, třeba. Všechny věci mám v souboru cache, takže mě stačí to ID, pak už si to srovnám ;)

tiso
Nevím jak to mám napojit na autologin :)
tiso
Profil
RiZe
tabulka uzivatel: meno/heslo/autologin kde autologin je stĺpec s hodnotou Yes/No (1/0)
-pokiaľ sedí meno heslo tak ho prihlásiš
-pokiaľ nastaví autologin na 1 tak mu vygeneruješ cookie autologin na čas aký chceš a testuješ existenciu tej cookie
RiZe
Profil
tiso
Ano, takhle nějak to má být. Akorát pokud tu cookie generuji vždy a posílám uživateli, ale pokud má zapnutý auto-login, budu brát v potaz její existenci třeba i za týden. Pokud nebude mít autologin, bude cookie ignorována a bude vynuceno nové přihlášení. Tz. když bude větší datum než je v session end, a uživatel mezitím neudělá žádnou akci, která by vedla k prodloužení tohoto času, bude cookie ignorována.

Tak teď mě zajímá nakolik je to bezpečné. U uživatele vlastně budu mít v cookie jeho Id (minimálně) a jeho Session Id. Zbytek je na serveru. Ověřuji IP, agenta, pokud se liší od údajů v databázi (zapsané při přihlášení), zneplatním relaci a vynutím nové přihlášení.
tiso
Profil
nie id, ale nejaký hash, napríklad hash reťazca z id, ip a agenta, máš to v jednom...
RiZe
Profil
Což ale znamená další sloupec do tabulky pokud se nemýlím. Já se na to ještě pořádně mrknu ;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.