CSRF ali ponarejanje zahtev na več mestih je ranljivost spletnega mesta, kjer lahko napadalec povzroči dejanje v seji žrtve na drugem spletnem mestu. Ena od stvari, zaradi katerih je CSRF tako veliko tveganje, je, da sploh ne zahteva uporabniške interakcije, vse, kar je potrebno, je, da si žrtev ogleda spletno stran z izkoriščanjem.
Namig: CSRF se običajno izgovarja bodisi črka za črko bodisi kot "sea surf".
Kako deluje napad CSRF?
Napad vključuje napadalec, ki ustvari spletno mesto, ki ima metodo oddaje zahteve na drugem spletnem mestu. To bi lahko zahtevalo interakcijo uporabnika, na primer prisiliti ga, da pritisne gumb, lahko pa tudi brez interakcije. V JavaScriptu obstajajo načini, kako povzročiti, da se dejanje zgodi samodejno. Na primer, slika nič za nič slikovnih pik uporabniku ne bo vidna, vendar jo je mogoče konfigurirati tako, da njen »src« zahteva drugo spletno mesto.
JavaScript je jezik na strani odjemalca, kar pomeni, da se koda JavaScript izvaja v brskalniku in ne na spletnem strežniku. Zahvaljujoč temu dejstvu je računalnik, ki pošlje zahtevo CSRF, dejansko računalnik žrtve. Žal to pomeni, da je zahteva podana z vsemi dovoljenji, ki jih ima uporabnik. Ko napadalno spletno mesto prelisiči žrtev, da vloži zahtevo CSRF, se zahteva v bistvu ne razlikuje od uporabnika, ki zahteva običajno.
CSRF je primer »zmedenega napada namestnika« na spletni brskalnik, saj napadalec brez teh privilegijev zavede brskalnik, da uporabi njegova dovoljenja. Ta dovoljenja so vaša seja in žetoni za preverjanje pristnosti za ciljno spletno mesto. Vaš brskalnik samodejno vključi te podrobnosti v vsako zahtevo, ki jo poda.
Napade CSRF je nekoliko zapleteno urediti. Najprej mora ciljno spletno mesto imeti obrazec ali URL, ki ima stranske učinke, kot je brisanje vašega računa. Napadalec mora nato izdelati zahtevo za izvedbo želenega dejanja. Nazadnje mora napadalec žrtev prepričati, da naloži spletno stran z izkoriščanjem v njej, medtem ko je vpisana na ciljno spletno mesto.
Če želite preprečiti težave s CSRF, je najboljše, kar lahko storite, da vključite žeton CSRF. Žeton CSRF je naključno ustvarjen niz, ki je nastavljen kot piškotek, vrednost mora biti vključena v vsak odgovor poleg glave zahteve, ki vključuje vrednost. Čeprav napad CSRF lahko vključuje piškotek, ni mogoče določiti vrednosti žetona CSRF za nastavitev glave, zato bo napad zavrnjen.