SQL vbrizgavanje

Avtor: Peter Berry
Datum Ustvarjanja: 13 Avgust 2021
Datum Posodobitve: 22 Junij 2024
Anonim
Forensically Investigate Who Changed What and When In an SQL Server Database
Video.: Forensically Investigate Who Changed What and When In an SQL Server Database

Vsebina

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.