Autor Zpráva
blah
Profil *
Zdravím,

nevím, jestli někdo řešil přesně to, co chci já, ale nikde jsem to tu nenašel...

Mám takový dotaz: chci si udělat lepší a bezpečnější přihlašování uživatelů. Základ je samozřejmě přihlašovací formulář (login a heslo), po jehož odeslání a úspěšné autorizaci uživatele se vytvoří session s potřebnými údaji. Na tom nic není, ale teď nevím, jak dosáhnout co nejefektivněji toho, aby se uživatel nemusel přihlašovat při každé návštěvě serveru, ale aby v případě zájmu měl možnost zůstat přihlášený po dobu třeba 30ti dnů.

Nenapadá mě zatím nic moc konstruktivního: začátek bude stejný - přihlašovací formulář (login a heslo), po jehož odeslání a úspěšné autorizaci uživatele se vytvoří session s potřebnými údaji + se mu uloží do pc cookie s údaji o přihlášení a dobou trvání 30 dnů. Pak by se to kontrolovalo. Jak to ale vymyslet co nejbezpečněji a taky aby to mělo hlavu a patu?

Máte někdo nápad?

Díky za rady
AM_
Profil
Do cookie neukládej jeho heslo, ale nějakou náhradu - řekněme náhodně generovaný dostatečně dlouhý řetězec (alespoň tak 16 znaků), který se při každém dalším přihlášení pomocí COOKIE (tedy ne při každém refreshi, kde se údaje čtou ze session) změní. Další dobrá věc je používat protokol HTTPS místo HTTP, pokud ho hosting podporuje (většina hostingů, především placených, myslímže ano)
blah
Profil *
AM_
Rozhodně nechci ukládat heslo, spíš jsem pomýšlel třeba na md5 hash microtime() kterej by byl zároveň uložen v DB, pro větší bezpečnost by šlo k microtime() přidat i něco od uživatele (prohlížeč, IP adresa, ...). Při ověřování cookie by se script koukl do DB a pokud by tenhle řetězec seděl, uživatele by přihlásil. Pak by teda mohl vygenerovat novej řetězec, kterej by přepsal původní cookie a dál už by se pracovalo jen se session... Je to takhle v pořádku?
AM_
Profil
Přesně tak. Akorát místo microtime() bych použil něco náhodnějšího a hůře odhalitelného, třeba md5(uniqid()."#salt!;=%")
blah
Profil *
AM_No, mám jeden skript na generování náhodného hesla. tam si můžu nastavit jak délku, tak znaky a to je myslím už dostačující... Každopádně díky za rady

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: