Obstaja veliko različnih vrst varnostnih ranljivosti, ki jih najdemo na spletnih mestih, ena zanimiva se imenuje »Fiksiranje seje«. Fiksiranje seje je težava, pri kateri lahko napadalec vpliva na identifikator seje, imenovan ID seje uporabnika, in ga nato uporabi za dostop do svojega računa. Ta vrsta ranljivosti lahko deluje na dva načina: napadalcu lahko omogoči, da poišče ali nastavi ID seje drugega uporabnika.
Kako se izvaja napad fiksacije seje
ID seje uporabnika je pogosto ključni del preverjanja pristnosti na spletnem mestu in je v mnogih primerih edini podatek, ki identificira določenega prijavljenega uporabnika. Težava pri tem je, da če napadalec lahko nastavi ali se nauči ID-ja seje drugega uporabnika, lahko uporabi žeton seje in nato lahko deluje kot uporabnik.
Običajno se to naredi tako, da uporabnika zavedejo, da klikne vrsto povezave z lažnim predstavljanjem. Sama povezava je povsem legitimna, vendar vključuje spremenljivko, ki nastavi določen ID seje. Če se uporabnik nato prijavi z ID-jem seje in mu strežnik ne dodeli novega ID-ja seje prijave, lahko napadalec preprosto nastavi svoj ID seje na enak in ima dostop do žrtve račun.
Drug način, kako lahko napadalec odkrije ID seje žrtve, je, če je prikazan v URL-ju. Na primer, če lahko napadalec zavede žrtev, da ji pošlje povezavo in ta vključuje ID seje žrtve, lahko napadalec uporabi ID seje za dostop do žrtvinega računa. V nekaterih primerih se to lahko zgodi povsem po naključju. Na primer, če uporabnik kopira URL z ID-jem seje in ga prilepi prijatelju ali na forum, bo vsak uporabnik, ki sledi povezavi, prijavljen z uporabniškim računom.
Popravki fiksacije sej
Obstaja nekaj rešitev za to težavo in kot vedno je najboljša rešitev uvesti čim več popravkov kot del strategije poglobljene obrambe. Prva rešitev je, da spremenite ID seje uporabnika, ko se prijavi. To preprečuje, da bi napadalec kadar koli vplival na ID seje prijavljenega uporabnika. Strežnik lahko tudi konfigurirate tako, da kadar koli sprejme samo ID-je sej, ki jih je ustvaril, in da izrecno zavrne vse ID-je sej, ki jih zagotovi uporabnik.
Spletno mesto mora biti konfigurirano tako, da v URL nikoli ne postavlja nobenih občutljivih podatkov o uporabniku, kot je ID seje, in ga mora postaviti v parameter zahteve GET ali POST. To preprečuje uporabniku, da bi pomotoma ogrozil svoj ID seje. Z uporabo tako ID-ja seje kot ločenega žetona za preverjanje pristnosti podvojite količino informacij, ki jih napadalec potrebuje za pridobitev, in preprečite napadalcem dostop do sej z znanimi ID-ji sej.
Bistveno je, da so vsi veljavni ID-ji sej za uporabnika razveljavljeni, ko se klikne gumb za odjavo. ID seje je mogoče ponovno ustvariti ob vsaki zahtevi, če so ID-ji prejšnjih sej razveljavljeni, to tudi preprečuje napadalcem uporabo znanega ID-ja seje. Ta pristop tudi znatno zmanjša okno grožnje, če uporabnik razkrije svoj ID seje.
Z omogočanjem več teh pristopov lahko strategija poglobljene obrambe odpravi to težavo kot varnostno tveganje.