ASP.NET MVC - SQL iesmidzināšana

Satura rādītājs
Ir daudz veidu uzbrukumu, kurus mēs varam saņemt mūsu lietojumprogrammās, viens no visbiežāk sastopamajiem un var radīt lielu kaitējumu. SQL injekcijaŠis uzbrukums ir ievainojamību atrašana, kā mēs apstrādājam vaicājumus pret datu bāzēm, lai iegūtu informāciju vai ievietotu vērtības, kas var ietekmēt tā funkcionalitāti.
Lai pasargātu sevi no šāda veida uzbrukumiem, mums vispirms ir jāzina, no kā tas sastāv, tādā veidā mēs varam uzzināt, kādi piesardzības pasākumi mums ir jāveic.
Kā jau minējām, šī uzbrukuma dēļ mūsu datu bāze nedarbojas pareizi, jo uzbrucējs ievieš datus, kuru dēļ mūsu vaicājumi neizdodas atbilstoši noteiktām ievainojamībām, ar to uzbrucējs var mēģināt iegūstiet shēmas tabulās vai ievadiet datus, kas var apdraudēt darbību, piemēram, ievadiet lietotāju, lai piekļūtu mūsu lietojumprogrammas administratīvajai sadaļai.
Viens no visizplatītākajiem veidiem ir tas, ka mēs ievadām parametrus tieši tad, kad tos saņemam no kontrolieriem, piemēram, mēs veicam meklēšanu pēc kategorijām un no kontroliera saņemam meklējamās kategorijas identifikatoru, ja tas iet tieši, to neiztīrot. var ģenerēt uzbrukumu, kas uzbrucējam parāda visas esošās kategorijas.
Apskatīsim šādu nedrošu kodu:

PALIELINĀT

Mēs varam redzēt, kā 6. rinda mēs izveidojam meklēšanas nosacījumu un pēc tam 10. rinda Mēs to nododam tieši metodei, kas veido vaicājumu, nepieredzējuša acs var neredzēt nekādas problēmas, bet, ja uzbrucējs ievada šādu parametru: "1 vai 1 = 1" jūs varētu iegūt visu mūsu tabulas sarakstu.
Kā sevi pasargāt?Veids, kā pasargāt sevi šajā gadījumā, iet cauri diviem pamata soļiem pirmais ir tas, ka mēs nevaram atļaut datu tiešu izpildi, kad mēs tos saņemam, tāpēc pirms vaicājuma parametrs ir jāiztīra ar metodi, kas meklē nelegālas rakstzīmes, un to atrašanas gadījumā nosūta lietotāju uz 404 lapu vai Lapa nav atrasta.
Tālāk redzēsim, kā mēs varam filtrēt saņemto:

Šeit mēs pārskatām ar a regulāra frāze Lai mūsu kontrolieris saņem tikai skaitļus, pretējā gadījumā mēs sūtām ziņu, katrs var izveidot savu versiju, taču svarīgi ir kontrolēt, ko saņems mūsu lietojumprogramma.
otrais solis, lai izvairītos no uzbrukumiem nestrādājiet ar aizstājējzīmi "*" un vienmēr ierobežojiet vaicājumus, gaidot ierakstu, tādējādi izvairoties no visu datu atklāšanas, ja kādam izdosies pārsniegt mūsu prognozes.
Nozvejas izņēmumiVisbeidzot, ja mūsu lietojumprogrammā nonāk nelikumīgs parametrs, mums par katru cenu jāizvairās no kļūdas izsekošanas, jo tajā ir sensitīvi dati no mūsu instalācijas un to var izmantot pret mums, tāpēc mums vienmēr ir jāpārliecinās, ka izņēmumi un nosūtiet personalizētu ziņojumu, kurā nav daudz detaļu, jo šo informāciju var redzēt izstrādes vidē.
Kā redzējām, zinot uzbrukumus, mēs iegūstam atšķirīgu skatījumu uz to, kā mēs varam aizsargāt savu lietojumprogrammu un kā rīkoties, lai lietotājiem nodrošinātu lielāku drošību.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave