![Forensically Investigate Who Changed What and When In an SQL Server Database](https://i.ytimg.com/vi/hJxNsZTUKWA/hqdefault.jpg)
Vsebina
- Opredelitev - Kaj pomeni vbrizgavanje SQL?
- Uvod v Microsoft Azure in Microsoft Cloud | V tem priročniku boste spoznali, kaj sploh pomeni računalništvo v oblaku in kako vam lahko Microsoft Azure pomaga preseliti in voditi vaše podjetje iz oblaka.
- Techopedia razlaga SQL Injection
Opredelitev - Kaj pomeni vbrizgavanje SQL?
Injekcija SQL je računalniški napad, v katerem je zlonamerna koda vdelana v slabo zasnovano aplikacijo in nato prenesena v bazo podatkov. Zlonamerni podatki nato ustvarijo rezultate poizvedbe baze podatkov ali dejanja, ki jih nikoli ne bi smeli izvesti.
Uvod v Microsoft Azure in Microsoft Cloud | V tem priročniku boste spoznali, kaj sploh pomeni računalništvo v oblaku in kako vam lahko Microsoft Azure pomaga preseliti in voditi vaše podjetje iz oblaka.
Techopedia razlaga SQL Injection
Poglejmo primer napada injekcije SQL:
Aplikacija, ki vodi banke, vsebuje menije, ki jih je mogoče uporabiti za iskanje podrobnosti o strankah s pomočjo podatkovnih točk, kot je strankina številka socialnega zavarovanja. V ozadju aplikacija pokliče poizvedbo SQL, ki se izvaja v bazi, tako da vnese iskane vrednosti:
IZBERITE ime in priimek stranke, telefon, naslov, datum_izpovedi KJE social_sec_no = 23425
V tem vzorčnem skriptu uporabnik v okno menija aplikacije vnese vrednost 23425 in od njega zahteva, da vnese številko socialne varnosti. Nato se z vrednostjo, ki jo zagotovi uporabnik, v bazo podatkov požene poizvedba SQL.
Uporabnik s znanjem SQL lahko aplikacijo razume in namesto da vnese eno samo vrednost, ko jo zahteva številka socialnega zavarovanja, vnese niz "23425 ali 1 = 1", ki se posreduje v bazo podatkov na naslednji način:
IZBERI ime in priimek stranke, telefon, naslov, datum_izpostave KJE social_sec_no = 23425 ali 1 = 1
Klavzula WHERE je pomembna, ker uvaja ranljivost. V bazi podatkov je pogoj 1 = 1 vedno resničen, in ker je bila poizvedba določena za vrnitev podrobnosti o odjemalčevi številki socialnega zavarovanja (23425) ali KJE 1 = 1, bo poizvedba vrnila vse vrstice v tabeli, ki ni bila prvotni namen.
Zgornji primer napada vbrizgavanja SQL je preprost, vendar prikazuje, kako izkoriščamo ranljivost, da aplikacijo zamočimo v izvajanje poizvedbe ali ukaza za zaporno bazo podatkov.
Napake vbrizgavanja SQL je mogoče omiliti z ustreznim načrtovanjem aplikacij, zlasti v modulih, ki potrebujejo uporabniški vnos za izvajanje poizvedb ali ukazov baze podatkov. V zgornjem primeru lahko aplikacijo spremenimo tako, da sprejme samo eno numerično vrednost.