ASP.NET MVC - SQL injekcija

Sadržaj
Mnogo je vrsta napada koje možemo primiti u svojim aplikacijama, jedan od najčešćih i koji može generirati veliku štetu je SQL InjectionOvaj se napad sastoji u pronalaženju ranjivosti u načinu na koji obrađujemo upite prema bazama podataka radi izdvajanja informacija ili umetanja vrijednosti koje mogu utjecati na njegovu funkcionalnost.
Kako bismo se zaštitili od ove vrste napada, prvo moramo znati u čemu se sastoji, na ovaj način možemo naučiti koje mjere opreza moramo poduzeti.
Kao što smo spomenuli, zbog ovog napada naša baza podataka ne radi ispravno, za to napadač uvodi podatke zbog kojih naši upiti ne uspijevaju u skladu s određenim ranjivostima, čime napadač može pokušati dobiti sheme naših tablica ili unijeti podatke koji mogu ugroziti rad, poput unesite korisnika za pristup administrativnom odjeljku naše aplikacije.
Jedan od najčešćih načina je da parametre unosimo izravno onako kako ih primamo od kontrolera, na primjer imamo pretraživanje po kategorijama i od kontrolera dobivamo identifikator kategorije koju treba pretraživati, ako prolazi izravno bez čišćenja može generirati napad koji napadaču prikazuje sve postojeće kategorije.
Pogledajmo sljedeći nesigurni kôd:

POVEĆAJTE

Možemo vidjeti kako u redak 6 gradimo uvjete pretraživanja, a zatim u redak 10 Prenosimo ga izravno na metodu koja gradi upit, neiskusno oko možda neće vidjeti nikakav problem, ali ako napadač unese sljedeći parametar: "1 ili 1 = 1" mogli biste dobiti popis cijele naše tablice.
Kako se zaštititi?Način da se zaštitimo u ovom slučaju prolazi kroz dva osnovna koraka, prvi je da ne možemo dopustiti izravno izvršavanje podataka onako kako ih primamo, za to, prije upita, moramo očistiti parametar metodom koja traži nedopuštene znakove i u slučaju da ih pronađe, poslati korisnika na stranicu 404 ili stranica nije pronađena.
Pogledajmo u sljedećem kodu kako možemo filtrirati ono što primamo:

Ovdje pregledavamo s regularna fraza Neka samo brojevi budu ono što prima naš kontrolor, inače šaljemo poruku, svatko može napraviti svoju verziju, ali važno je kontrolirati što će naša aplikacija primiti.
The drugi korak za izbjegavanje napada je ne radi sa zamjenskim znakom "*" i uvijek ograničimo upite kada čekamo zapis, na taj način izbjegavamo otkrivanje svih podataka u slučaju da netko uspije premašiti naše prognoze.
Uhvatite iznimkeKonačno, ako u našu aplikaciju uđe ilegalni parametar, moramo pod svaku cijenu izbjeći trag greške, jer sadrži osjetljive podatke iz naše instalacije i može se koristiti protiv nas, stoga uvijek moramo paziti na iznimke i poslati personaliziranu poruku koja ne sadrži mnogo detalja jer se ti detalji mogu vidjeti u razvojnom okruženju.
Kao što smo mogli vidjeti, poznavanje napada daje nam drugačiju perspektivu o tome kako možemo zaštititi svoju aplikaciju i kako učiniti kako bismo svojim korisnicima dali veću sigurnost.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave