Jak chráníte svoje aplikace proti útokům typu session hijack? Trochu jsem si to teď studoval (např. na PHP Security Consortium) a nějak nevidím cestu, jak to zařídit. Jako částečná ochrana mi připadá jenom testování REMOTE_ADDR, i když to moc nechrání v případě, že je útočník za stejným NAT/proxy jako oběť (nebo v případě, že mu stačí jednorázové poškození - např. sebrat session adminovi a s podvrhnutou IP adresou poslat příkaz na smazání nějakého záznamu).
Security Consortium navrhuje testování HTTP_USER_AGENT, eventuelně v kombinaci s nějakým hashem, ale to mi připadá jako naprosto neúčinné - když už budu schopen ukrást session id (předpokládám přenos v cookie), tak nepochybně dokážu ukrást i cokoliv jiného, co se v HTTP hlavičkách přenáší. Dále doporučují obnovu SID, což je asi OK poté, co uživatel potvrdí svoji identitu (např. jménem a heslem), ale vůbec se mi nelíbí dělat to průběžně, protože je pak docela problematické otevřít si několik stránek najednou.
Řešíte tohle vůbec nějak? A pokud, tak jak? |