Mis on saidiülese taotluse võltsimine?

CSRF või Cross-Site Request Forgery on veebisaidi haavatavus, mille korral ründaja võib põhjustada toimingu ohvri seansil teisel veebisaidil. Üks asi, mis muudab CSRF-i nii suureks riskiks, on see, et see ei nõua isegi kasutaja sekkumist, piisab vaid sellest, et ohver vaataks veebilehte, millel on ärakasutamine.

Näpunäide: CSRF-i hääldatakse üldiselt kas tähthaaval või kui "meresurf".

Kuidas CSRF-rünnak töötab?

Rünnak seisneb selles, et ründaja loob veebisaidi, millel on meetod päringu esitamiseks teisele veebisaidile. See võib nõuda kasutaja sekkumist, näiteks nupu vajutamist, kuid see võib olla ka interaktsioonivaba. JavaScriptis on võimalusi toimingu automaatseks toimumiseks. Näiteks null-null-piksline pilt ei ole kasutajale nähtav, kuid seda saab konfigureerida nii, et selle "src" esitab päringu teisele veebisaidile.

JavaScript on kliendipoolne keel, mis tähendab, et JavaScripti koodi käitatakse pigem brauseris kui veebiserveris. Tänu sellele on CSRF-i päringu esitav arvuti tegelikult ohvri oma. Kahjuks tähendab see, et päring tehakse kõigi kasutajal olevate õigustega. Kui ründav veebisait on petnud ohvrilt CSRF-i päringut, on taotlus sisuliselt eristamatu tavapäraselt päringu esitavast kasutajast.

CSRF on näide "segaduses asetäitja rünnakust" veebibrauseri vastu, kuna ilma nende õigusteta ründaja meelitab brauserit kasutama selle lubasid. Need load on teie sihtveebisaidi seansi- ja autentimismärgid. Teie brauser lisab need andmed automaatselt igasse päringusse.

CSRF-i rünnakuid on mõnevõrra keeruline korraldada. Esiteks peab sihtveebisaidil olema vorm või URL, millel on kõrvalmõjud, näiteks konto kustutamine. Seejärel peab ründaja soovitud toimingu tegemiseks esitama taotluse. Lõpuks peab ründaja sundima ohvrit laadima veebilehte, milles on ärakasutamine, kui ta on sihtveebisaidile sisse logitud.

CSRF-i probleemide vältimiseks on parim, mida saate teha, lisada CSRF-i luba. CSRF-i luba on juhuslikult genereeritud string, mis on seatud küpsiseks, väärtus tuleb lisada igale vastusele koos päringu päisega, mis sisaldab väärtust. Kuigi CSRF-i rünnak võib sisaldada küpsist, ei saa see kuidagi päise määramiseks määrata CSRF-i märgi väärtust ja seega lükatakse rünnak tagasi.