Što je krivotvorenje zahtjeva na više stranica?

CSRF ili Cross-Site Request Forgery je ranjivost web-mjesta gdje napadač može uzrokovati radnju u sesiji žrtve na drugoj web stranici. Jedna od stvari koja čini CSRF tolikim rizikom je da čak ne zahtijeva interakciju korisnika, sve što je potrebno je da žrtva vidi web stranicu s eksploatacijom.

Savjet: CSRF se općenito izgovara ili slovo po slovo ili kao "morski surf".

Kako funkcionira CSRF napad?

Napad uključuje napadač kreiranje web stranice koja ima način postavljanja zahtjeva na drugoj web stranici. To bi moglo zahtijevati interakciju korisnika, kao što je natjerati ih da pritisnu gumb, ali može biti i bez interakcije. U JavaScriptu postoje načini da se neka radnja dogodi automatski. Na primjer, slika nula po nula piksela neće biti vidljiva korisniku, ali se može konfigurirati tako da njezin "src" šalje zahtjev drugoj web stranici.

JavaScript je jezik na strani klijenta, što znači da se JavaScript kod izvodi u pregledniku, a ne na web poslužitelju. Zahvaljujući toj činjenici, računalo koje šalje CSRF zahtjev zapravo je žrtvino računalo. Nažalost, to znači da je zahtjev napravljen uz sva dopuštenja koja korisnik ima. Nakon što je napadačka web stranica prevarila žrtvu da podnese CSRF zahtjev, zahtjev se u biti ne može razlikovati od korisnika koji uobičajeno podnosi zahtjev.

CSRF je primjer "napada konfuznog zamjenika" na web preglednik jer napadač bez tih privilegija na prevaru prevari preglednik da koristi njegova dopuštenja. Ova dopuštenja su vaša sesija i tokeni za provjeru autentičnosti na ciljnoj web stranici. Vaš preglednik automatski uključuje ove pojedinosti u svaki zahtjev koji uputi.

CSRF napadi su donekle složeni za organiziranje. Prije svega, ciljna web stranica mora imati obrazac ili URL koji ima nuspojave kao što je brisanje vašeg računa. Napadač tada treba izraditi zahtjev za izvođenje željene radnje. Konačno, napadač mora natjerati žrtvu da učita web stranicu s eksploatacijom dok je prijavljena na ciljanu web stranicu.

Kako biste spriječili probleme s CSRF-om, najbolje što možete učiniti je uključiti CSRF token. CSRF token je nasumično generirani niz koji je postavljen kao kolačić, a vrijednost treba biti uključena uz svaki odgovor uz zaglavlje zahtjeva koje uključuje vrijednost. Iako CSRF napad može uključivati ​​kolačić, ne postoji način da se utvrdi vrijednost CSRF tokena za postavljanje zaglavlja i tako će napad biti odbijen.