Autor Zpráva
alex
Profil *
Dobry den.
Mám dotaz. Přes PHP mám udělané přihlašování na jednu chráněnou stránku.
Když se člověk přihlásí tak to uloží nějaký cookie. Když dá odhlásit tak to to cookie smaže. Když ale ten člověk neklikne na odhlásit a jen zavře okno prohlížeče tak to cookie tam logicky zůstane (prakticky - když jsem si tam pak šel znova tak jsem se nemusel přihlašovat a už mě to rovnou pustilo dál do chráněné stránky). Ale to já nechci takže se ptám jak udělat aby při opuštění tý zabezpečený stránky se automaticky to cookie smazalo (kdyby někdo zapoměl dát Odhlásit). Asi to je uplně primitivní ale jsem začátečník a tak si to sám neumím napsat. Předem děkuji za odpovědi.
Casero
Profil
alex
třeba ji zadat limit trvanlibvosti:-D
Acci
Profil
Použij SESSION nebo cookie nenastavuj dobu expirace.
alex
Profil *
Casero
No jasny :-D . Ale neni to ono. To by bylo třeba po 20min smazání cookie ale co když tam bude návštěvník víc jak 20min. Tak ho to vykopne po 20 minutách. Pokud to dobře chápu.

Acci
SESSION ??? co to je ? Já psal že jsem začátečník. Ten skript na přihlašování jsem si našel na netu a tak ho potřebuju jen obohatit o to mazani cookie po opuštění stránky.

PROSIM POMOZTE !
Jan Tvrdík
Profil
alex
Nastuduj si SESSION a nebudeš mít problém. Když jsi zvládl cookies, zvládneš i session :-D
Casero
Profil
alex
session je skoro totéž co cookies...rychle se naučíš
alex
Profil *
Oki. Skusím se to SESSION naučit. Díky, ale určitě se ozvu zas ;-) (ptž to asi nepochopim).
alex
Profil *
Oki. Skusím se to SESSION naučit. Díky, ale určitě se ozvu zas ;-) (ptž to asi nepochopim).
Joker
Profil
alex
To by bylo třeba po 20min smazání cookie ale co když tam bude návštěvník víc jak 20min. Tak ho to vykopne po 20 minutách.
Ten čas musíte při načtení každé stránky aktualizovat. Sice to znamená, že to bude muset dělat každá stránka, ale za prvé stejně musíte mít nějakou funkci kontrolující přihlášení, takže do ní prostě přihodíte že pokud cookie existuje, tak se obnoví s aktuálním časem a za druhé se tomu tak jako tak nevyhnete. Pokud chcete automatické odhlášení po určité době neaktivity, prostě musíte tu neaktivitu nějak poznat.

No anebo session, to je nejlepší řešení.

Pokud budete dělat nějakou "seriozní" aplikaci, je s cookies jeden problém:
Například u phpBB se cookie dělá jako uživatelské id + MD5 hash hesla. Slabé místo je v tom, že útočníkovi stačí získat hash uživatelova hesla a může si tu cookie sám vyrobit (není to ani tak složité, například v Opeře jdou upravovat cookie přímo v prohlížeči) a potom být přihlášený na jiného uživatele aniž by znal jeho heslo.
alex
Profil *
Joker
No. Tak ja si nastuduji to SESSION a pak to udělám přes SESSION a s cookie se nebudu zabývat když jsou tak blbé!

To jsi mně docela vystrašil s tim phpBB.....právě ho chci rozbehnout na webu a možná se na to vykašlu (když je to tak děravé, že se dá lehce přes cookie přihlásit jako třeba admin a všechno smazat) :-( ...... hmmm.....ale co místo phpBB ??? php NUKE ??? Joomlaboard forum ??? (sice to forum je OT ale prosim napiste nez to admin zablokuje....
Joker
Profil
alex
Cookies nejsou blbé, spíš jde o způsob použití.

S tím phpBB bych Vás zase uklidnil, že na vyrobení té cookie pořebujete znát hash hesla a ten musíte přečíst z databáze. Ale je fakt, že pokud třeba já programuju na webu php a mám díky tomu přístup k databázi, mohl bych se přihlásit pod jménem jakéhokoliv uživatele.
U fóra to není zas tak závažný problém, asi nenecháte jen tak někoho se hrabat v databázi a nikdo to nebude mít moc zájmu hacknout, ale je dobré vědět, že u cookies může takovéhle riziko být.

Jinak pokud děláte přihlášení, tak přihlašovací cookie je myslím taková nejjednodušší varianta. Session je bezpečnější a mocnější nástroj, ale musíte zas v PHP umět s nimi pracovat (naštěstí to není zas takový problém).
A ještě vyšší úroveň bezpečnosti je kombinace session a databáze. Při přihlášení uživatele si jeho session ID uložíte do databáze společně s dalšími informacemi (například IP adresou) a před načtením každé stránky si informace ověřujete. Pak útočníkovi nepomůže ani když ukořistí platné session ID nějakého právě přihlášeného uživatele

Použití session má tu výhodu (v některých případech nevýhodu), že uživatel je odhlášen jakmile zavře okno prohlížeče (protože prohlížeč obvykle při novém otevření nepokračuje v původní session).
anonymní
Profil *
Děkuji Vám mnohokrát za informace.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0