Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wlasny mechanizm sesji, problem z ciastkiem...
Zgredzik
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Czesc, robie wlasny mechanizm sesji i mam problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dokladnie chodzi o informacje przechowywane w ciasku, wiec zacznijmy od poczatku... Sesje obejmuja tylko uzytkownikow zalogowanych... W ciastku planowalem przechowywac ID uzytkownika z bazy oraz hash jego IP+odpowiednie dosolonie, ciastko takie ma dosc ktorki termin i nikt z tego ciastka raczej nie skorzysta z pod innego adresu IP. Problem polega na tym ze jesli wprowadze opcje "zaloguj automatycznie/zapamietaj mnie" to w erze dynamicznego adresu IP okres zycia takiego ciastka zamiast 7dni wyniesie 24h - czyli do puki nie zrestartuje sie np taki modem Neostrady - wtedy adres IP zostaje zmieniony a podczas porownywania hashy mamy FALSE (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pytanie: w jaki sposob zapisac informacje w ciastku uwzgledniajac jego dlugi termin waznosci (do autologowania) tak aby ktos kto wykradnie ciastko Kowalskiego nie mogl z niego skorzystac...

Hm tak sobie analizowalem CMS Fusion i oni cale ciastko zrobili w sposob...
w ciastku jest hash MD5 hasla zas w bazie danych zostaje przechowywane to samo haslo podwojnie hashowane za pomoca MD5. Jaki sens?
Wiec? Osoba majaca dostep do ciastka kowalskiego moze wejsc na jego konto z innego komputera za posrednictwem tego wlasnie ciastka...?(IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No to już wiemy, że CMS Fusion to...

Ciastko sesji i ciastko automatycznego logowania to dwie inne sprawy, jednak w obu przypadkach: ciąg danych powinien być maksymalnie losowy (pseudolosowy), możesz generować to od chociażby
  1. <?php
  2. md5(uniqid(mt_rand(), true)))
  3. ?>

W przypadku pierwszego ciastka przy porównywaniu bierz pod uwagę wartość z ciastka + IP + ewentualnie ciąg identyfikujący przeglądarkę. Przy każdym przeładowaniu strony regeneruj ciastko.
W drugim ciastku możesz dodać jeszcze ID użytkownika.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 09:08