Předávání SID pomocí cookies
Jak jsem ukázal v článku Session ID do URL nepatří, základním pravidlem je uchovávat a předávat si session ID výhradně s pomocí cookies. Dneska bych rád zmínil některá důležitá nastavení, která s tím souvisí.
Jak jsem ukázal v článku Session ID do URL nepatří, základním pravidlem je uchovávat a předávat si session ID výhradně s pomocí cookies. Dneska bych rád zmínil některá důležitá nastavení, která s tím souvisí.
V článku Session hijacking aneb ukradení session ID jsem předeslal, že předávání SID přímo pomocí parametrů v URL je špatné. Lze na ně totiž použít drtivou většinu všech útoků pro ukradení či podvržení SID, zatímco předávání pomocí cookies je proti mnohým z nich relativně odolné. Pojďme se na to podívat blíže.
V předchozím článku jsem zeširoka nakousl session hijacking jako úvod do dalších
brzkých dílů. Ale jak už to tak při psaní blogísku bývá s volným
časem, je ho čím dál méně, takže pokračování přichází až teď, po
třech měsících. No nic, podívejme se na první možnost krádeže
Session ID
, kterou je Sidejacking čili odchycení
SID
z běžného sítového provozu.
Ukradení SID oprávněnému uživateli se obvykle označuje jako Session stealing nebo častěji Session hijacking. Existuje více cest, jak lze SID ukrást a získat tak třeba přístup k účtu daného uživatele. V příštích několika článcích se pokusím uvést všechny důležité útoky a zejména možnosti, jak se lze Session hijackingu v PHP bránit.
Cross-site scripting, označovaný obvykle zkratkou XSS, patří k nejznámějším útokům vůbec. Ačkoliv o něm již bylo napsáno mnoho, je XSS zranitelnost i nadále jednou z nejčastějších chyb současných webových aplikací. Není tedy od věci si jej připomenout i zde.
Při práci se sessions si mezi sebou server a klient neustále vyměňují SID. Jedná se o náhodně vygenerovaný token, podle kterého si server páruje dohromady jednotlivé požadavky konkrétního návštěvníka. Kdo zná SID, ten má přístup i k celé příslušné session.