1. Inleiding
Sessiefixatie is een techniek waarmee hackers de sessie van een gebruiker kunnen kapen. Deze techniek maakt gebruik van het feit dat de server de sessie-ID-waarde niet elke keer verandert wanneer de gebruiker inlogt, maar gebruikt in plaats daarvan een reeds bestaande sessie-ID. Het aanvalsproces omvat het verkrijgen van een geldige sessie-ID (mogelijk door toegang te krijgen tot de website ), vervolgens het vinden van een manier waarop het slachtoffer met deze sessie-ID op de website kan inloggen, en ten slotte, wanneer het slachtoffer succesvol inlogt, zal de hacker browsen de website met zijn account. Het specifieke scenario is als volgt:
Mallory vindt een website, zoals http://unsafe.example.com, die elke sessie-ID uit het verzoek accepteert zonder authenticatie.
Mallory stuurt Alice een e-mail met de link http://unsafe.example.com/?SID=1234.
Alice gaat naar http://unsafe.example.com/?SID=1234. Log dan in op de website.
Mallory gaat eenvoudigweg naar http://unsafe.example.com/?SID=1234 en gebruikt de website met het account van Alice.
Mallory kan de volgende methoden gebruiken om cookies voor Alice in te stellen:
Voeg een script toe om cookies in te stellen
HTTP-antwoordpakket met Mallory-cookiewaarde verzenden HTTP-antwoordpakket met Mallory-cookiewaarde verzenden
Gebruik HTML-metatags:

2. Voorbeelden
Voorbeeld 1 – Scripting aan de clientzijde
Vergelijkbaar met het hierboven genoemde scenario, wordt in dit geval echter de sessie-ID niet doorgegeven in de URL, maar in de cookie. Om de waarde van de sessie-ID in de cookie van het slachtoffer te bewerken, zal de hacker een stukje Javascript invoegen:
http://website.kom/document.cookie=”sessionid=abcd”;
Voorbeeld 2 - label
Vergelijkbaar met scripting aan de clientzijde, maar deze keer zal de hacker extra tags invoegen:
http://website.kon/
Voorbeeld 3 – HTTP-headerreactie
Het invoegen van sessie-ID's kan ook worden gedaan door pakketten te onderscheppen die worden uitgewisseld tussen de client en de webapplicatie, en vervolgens het Set-Cookie-veld in de header in te voegen.
![Web12: Hacktechniek voor sessiefixatie Web12: Hacktechniek voor sessiefixatie]()
3. Hoe te voorkomen
De oorzaak van deze fout is dat de server de sessie-ID niet opnieuw genereert na elke succesvolle aanmelding. Daarom is het oplossen van deze fout niet moeilijk, we hoeven alleen de waarde van Sessie-ID te wijzigen en dat is alles. In PHP gebruiken we de session_regenerate_id() functie om de sessie opnieuw te genereren.