1. Wstęp
Utrwalanie sesji to technika umożliwiająca hakerom przejęcie sesji użytkownika. Technika ta wykorzystuje fakt, że serwer nie zmienia wartości identyfikatora sesji za każdym razem, gdy użytkownik się loguje, zamiast tego wykorzystuje istniejący wcześniej identyfikator sesji. Proces ataku obejmuje uzyskanie ważnego identyfikatora sesji (prawdopodobnie poprzez dostęp do strony internetowej ), następnie znalezienie sposobu, aby ofiara mogła zalogować się do witryny internetowej przy użyciu tego identyfikatora sesji, a na koniec, gdy ofiara pomyślnie się zaloguje, haker będzie przeglądać stronę internetową z jego kontem. Konkretny scenariusz jest następujący:
Mallory znajduje witrynę internetową, taką jak http://unsafe.example.com, która akceptuje dowolny identyfikator sesji z żądania bez uwierzytelniania.
Mallory wyśle Alice e-mail zawierający łącze http://unsafe.example.com/?SID=1234.
Alicja wchodzi na stronę http://unsafe.example.com/?SID=1234. Następnie zaloguj się do serwisu.
Mallory po prostu wchodzi na stronę http://unsafe.example.com/?SID=1234 i korzysta ze strony internetowej za pomocą konta Alicji.
Mallory może skorzystać z następujących metod ustawiania plików cookie dla Alice:
Załącz skrypt ustawiający pliki cookies
Wyślij pakiet odpowiedzi HTTP z wartością pliku cookie Mallory. Wyślij pakiet odpowiedzi HTTP z wartością pliku cookie Mallory
Użyj metatagów HTML:

2. Przykłady
Przykład 1 – Skrypty po stronie klienta
Jednak podobnie jak w przypadku opisanym powyżej, w tym przypadku identyfikator sesji nie jest przekazywany w adresie URL, ale w pliku cookie. Aby edytować wartość identyfikatora sesji w pliku cookie ofiary, haker wstawi fragment kodu JavaScript:
http://website.kom/document.cookie=”sessionid=abcd”;
Przykład 2 – tag
Podobnie jak w przypadku skryptów po stronie klienta, ale tym razem haker wstawi dodatkowe tagi:
http://website.kon/
Przykład 3 – Odpowiedź nagłówka HTTP
Wstawienia identyfikatora sesji można również dokonać poprzez przechwytywanie pakietów wymienianych pomiędzy klientem a aplikacją internetową, a następnie wstawianie pola Set-Cookie do nagłówka.
![Web12: Technika hakowania fiksacji sesji Web12: Technika hakowania fiksacji sesji]()
3. Jak zapobiegać
Przyczyną tego błędu jest to, że serwer nie generuje ponownie identyfikatora sesji po każdym pomyślnym logowaniu. Zatem naprawienie tego błędu nie jest trudne, wystarczy zmienić wartość Session ID i gotowe. W PHP używamy funkcji session_regenerate_id() do regeneracji sesji.