Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Session Fixation
--MarekK--
post
Post #1





Goście







Witam.
Mam problem ze zrozumieniem problemu wiec postaram się go przedstawić. Mam aplikację a w niej sekcję odpowiedzalną za bezpieczeństwo dokladnie za kontrole Sesji. W ramach obrony przed Session Fixation stosuje prosty skrypt
  1. if (!isset($_SESSION['inicjuj']))
  2. {
  3. $_SESSION['inicjuj'] = true;
  4. }


I teraz wcielam się w "tego złego" i próbuję namieszać. Tworzę stronę która generuje mi ciasteczko do tej witryny z losowym SSID daje link do strony dla "ofiary" (ja nią jestem) następnie "ofiara" loguję się do aplikacji i....?
Moje zaskoczenie session_regenerate_id(); działa jak należy tworzony jest nowy SSID ale... po każdym odświeżeniu strony użytkownik musi znowu się logować gdyż w jego plikach coockie's jest złośliwe ciasteczko z przygotowanym SSID i np będzie ono istnieć tydzień. Przez tydzień nieszczęsliwy użytkownik ma problemy z korzystania z mojego serwisu bo...? co odświeży stronę to musi się znowu logować (jego sesja zostaje zniszczona przez session_regenerate_id();.

Pytanie do Was co można zrobić żeby uniknąć takiej sytuacji ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--MarekK--
post
Post #2





Goście







Okej jedziemy jeszcze raz...

Mamy sobie system logowania oparty na sesjach. Atak (jeśli nie session fixation - to sie myle) polegający na tym a żeby jakiś user zalogował się z określonym SSID, kiedyś to się robiło link?SSID=tralalalal. W moim przypadku atak polega na tym, że na jakieś stronie B jest kod który generuje ciasteczko o nazwie SSID o długości życia 7dni na strone A. Na stronie A znajduje sie zabezpieczenie przed takim atakiem czyli:

  1. if (!isset($_SESSION['inicjuj']))
  2. {
  3. $_SESSION['inicjuj'] = true;
  4. }


Teraz ten nieszcześliwy użytkownik jeśli się zaloguję to zostanie mu utworzony nowy ID sesji ale... jak odświeży stronę albo przejdzie na inną podstrone znowu jest (nie zalogowany) ponieważ w jego przeglądarce istnieje ciasteczko z SSID (wygenerowanym przez ta strone (IMG:style_emoticons/default/cool.gif) system regeneruje id. Jeśli ktoś dalej nie wie o co chodzi to prosze zrobić prosty system sprawdzania sesji w PHP + zabezpieczenie które jest w/w (Wikipedia). Do tego prosze zrobić stronę która generuje ciasteczko o długości np 1 godziny z losowym SSID na strone gdzie jest zabezpieczenie. Potem proszę się zalogować i czy się Państwu uda. Mi tak ale odświeżenie strony i znowu trzeba się zalogowac.
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: 14.10.2025 - 06:11