Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
Dobrý večer všem,
chystáme s kamarádem takový větší projekt, kde budou chatovací místnosti (podobně jako na dalších, dnes již méně užívaných webech - xchat.cz, ...). Máte nějaké nápady jak udělat přihlašování? Kouknul jsem co řešíte zde na diskusi v jednom tématu a také na nápad trvalého přihlášení od Jakuba Vrány. Za předpokladu, že bych udělal přihlašování na stejném principu (+ po každé akci změnil klíč), jak by se dalo elegantně řešit mazání starých záznamů z databáze? Dám příklad: Přijdu na web, přihlásím se, do sušenky dostanu id účtu + token a v mysql tabulce se vytvoří nový záznam s id účtu, ip přihlašujícího, časem přístupu, délkou přihlášení a tokenem. Sušenku smažu, ale záznam v databázi zůstane. Přemýšlel jsem, že by se dalo mazat jednou za měsíc záznamy, které by měly poslední přístup před více než 30 dny. Jenže přijde mi to neefektivní. Máte někdo lepší nápad? Bezpečnost bych vyřešil (snad) právě tím měněním tokenu při každé akci uživatele. Token by se skládal z sha1 hashe těchto dat: IP uživatele, mikročas a nějaký neveřejně známý údaj, třeba část z hashe hesla. Co vy na to? Máte ještě nějaký lepší nápad, jak udělat přihlášení bezpečnější? Děkuji za odezvy. |
||
scheras Profil * |
#2 · Zasláno: 15. 3. 2013, 09:16:01
Proč přihlášení bez session? Jinak k dotazu, elegantní řešení by přeci bylo při nastavování nového klíče vymazat z db ten starý. Nebo, jiná možnost, při odhlášení uživatele vymazat všechny jeho záznamy. To by se ovšem muselo spojit s (třeba) měsíčním vymazáním starých záznamů, protože kdo se dnes opravdu svědomitě odhlašuje ze všech služeb, že?
|
||
Joker Profil |
#3 · Zasláno: 15. 3. 2013, 09:50:55
TomasJ:
Proč nechcete použít sessions? Tahle otázka je myslím důležitá i pro to, jaké alternativní řešení případně zvolit. |
||
TomasJ Profil |
Joker:
Na webu budou stránky v nekonečném cyklu pro příjem dat z chatu (1 spojení na udp server z 1 portu). Z nějakého důvodu se zasekne celý web s použitím sessions. Nechápu to. Napadlo mě udělat to pomocí ajaxu, jen ten má problém, že v některých prohlížečích je onreadystatechange až když se načte soubor. Proto chci řešit vše přes cookies (kde mohu mít trvalé přihlášení). scheras: Při nastavování nového klíče je jasný, že starý bych nahradil, jinak by to nefungovalo. Jde mi jen o to, když smažu sušenku, jak potom zjistím, který záznam smazat? |
||
scheras Profil * |
#5 · Zasláno: 15. 3. 2013, 14:04:01
TomasJ:
No smazat záznam před smazáním sušenky. |
||
TomasJ Profil |
#6 · Zasláno: 15. 3. 2013, 14:09:45
scheras:
My jsme se nepochopili asi správně. Otevřu správce sušenek v prohlížeči a smažu ji. Nedá se poznat, když uživatel smaže sušenku. O to mi jde... |
||
scheras Profil * |
#7 · Zasláno: 15. 3. 2013, 14:48:24
TomasJ:
Máte pravdu, nepochopili. Ale o tomto problému jsem psal výše, takže vyřeší se to mazáním starých záznamů třeba každý den ve 3:00 (jak chcete pochopitelně). Nebo třeba kontrolovat u každého záznamu datum vytvoření a po určité době promazávat. |
||
TomasJ Profil |
#8 · Zasláno: 15. 3. 2013, 14:55:42
Jenže to je právě problém, že by už nešlo trvale se přihlásit. Jenže 30 dní mi přijde dlouhá doba.
|
||
pcmanik Profil |
TomasJ:
Pričinu treba hladať inde. Pokiaľ jeden skript neukončí prácu so session ďalší k nemu nim nemá pristup a preto čaká až sa uvoľní, takže si ulož obsah session do nejakej premennej a hneď potom zavolaj session_write_close()
|
||
Časová prodleva: 11 let
|
0