SQL Injection

Autor: Peter Berry
Datum Vytvoření: 13 Srpen 2021
Datum Aktualizace: 22 Červen 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Obsah

Definice - Co znamená SQL Injection?

Injekce SQL je počítačový útok, ve kterém je škodlivý kód zabudován do špatně navržené aplikace a poté předán do backendové databáze. Škodlivá data pak vytvoří výsledky dotazů na databáze nebo akce, které by se nikdy neměly provést.


Úvod do Microsoft Azure a Microsoft Cloud | V této příručce se dozvíte, o čem cloud computing je a jak vám může Microsoft Azure pomoci migrovat a řídit podnikání z cloudu.

Techopedia vysvětluje SQL Injection

Podívejme se na příklad útoku SQL injection:

Aplikace provozující operace banky obsahuje nabídky, které lze použít k vyhledávání podrobností zákazníka pomocí datových bodů, jako je číslo sociálního zabezpečení zákazníka. Na pozadí aplikace volá dotaz SQL, který se spouští v databázi předáním zadaných hodnot hledání následujícím způsobem:

VYBRAJTE jméno klienta, telefon, adresu, datum_dodání WHERE social_sec_no = 23425

V tomto ukázkovém skriptu uživatel zadá do okna nabídky aplikace hodnotu 23425 a požádá jej o zadání čísla sociálního zabezpečení. Potom pomocí hodnoty poskytnuté uživatelem spustí dotaz SQL v databázi.

Uživatel se znalostmi jazyka SQL může aplikaci rozumět a místo zadání jediné hodnoty, když je požádán o číslo sociálního zabezpečení, zadejte řetězec „23425 nebo 1 = 1“, který je předán do databáze následujícím způsobem:

VYBRAJTE jméno klienta, telefon, adresu, datum_prijetí WHERE social_sec_no = 23425 nebo 1 = 1

Klauzula WHERE je důležitá, protože zavádí zranitelnost. V databázi je podmínka 1 = 1 vždy pravdivá a protože byl zadán dotaz pro vrácení podrobností o čísle sociálního zabezpečení klienta (23425) nebo KDE 1 = 1, dotaz vrátí všechny řádky v tabulce, což nebylo původní záměr.

Výše uvedený příklad útoku SQL injekcí je jednoduchý, ale ukazuje, jak zneužití zranitelnosti přimělo aplikaci ke spuštění dotazu nebo příkazu backendové databáze.

SQL injekční útoky lze zmírnit zajištěním správného návrhu aplikace, zejména v modulech, které vyžadují ke spuštění databázových dotazů nebo příkazů uživatelský vstup. Ve výše uvedeném příkladu lze aplikaci změnit tak, aby akceptovala pouze jednu číselnou hodnotu.