Domov Varnost Kaj je sql injekcija? - definicija iz tehopedije

Kaj je sql injekcija? - definicija iz tehopedije

Kazalo:

Anonim

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.

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 vpiše eno samo vrednost, ko jo zaprosite za številko 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 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.

Kaj je sql injekcija? - definicija iz tehopedije