1. Úvod
Fixace relací je technika, která umožňuje hackerům unést relaci uživatele. Tato technika využívá skutečnosti, že server nemění hodnotu ID relace pokaždé, když se uživatel přihlásí, místo toho používá již existující ID relace. Proces útoku zahrnuje získání platného ID relace (případně přístupem na webovou stránku ), pak nalezení způsobu, jak se oběť může přihlásit na web s tímto ID relace, a nakonec, když se oběť úspěšně přihlásí, hacker projde webové stránky s jeho účtem. Konkrétní scénář je následující:
Mallory najde web, jako je http://unsafe.example.com, který přijímá jakékoli ID relace z požadavku bez ověření.
Mallory pošle Alici e-mail, který obsahuje odkaz http://unsafe.example.com/?SID=1234.
Alice přejde na http://unsafe.example.com/?SID=1234. Poté se přihlaste na web.
Mallory jednoduše přejde na http://unsafe.example.com/?SID=1234 a použije webovou stránku s Alicinem účtem.
Mallory může k nastavení souborů cookie pro Alice použít následující metody:
Přiložte skript pro nastavení souborů cookie
Odeslat paket odpovědi HTTP s hodnotou Mallory cookiePoslat paket HTTP odpovědi s hodnotou Mallory cookie
Použijte HTML metaznačky:

2. Příklady
Příklad 1 – Skriptování na straně klienta
Podobně jako ve výše uvedeném scénáři se však v tomto případě ID relace nepředává v adrese URL, ale v souboru cookie. Chcete-li upravit hodnotu ID relace v cookie oběti, vloží hacker kus Javascriptu:
http://website.kom/document.cookie=”sessionid=abcd”;
Příklad 2 - tag
Podobné jako skriptování na straně klienta, ale tentokrát hacker vloží další značky:
http://web.kon/
Příklad 3 – odpověď HTTP hlavičky
Vložení ID relace lze také provést zachycením paketů vyměňovaných mezi klientem a webovou aplikací a poté vložením pole Set-Cookie do hlavičky.

3. Jak předcházet
Příčinou této chyby je, že server po každém úspěšném přihlášení negeneruje ID relace. Oprava této chyby tedy není náročná, stačí změnit hodnotu Session ID a je to. V PHP používáme k regeneraci relace funkci session_regenerate_id().