Injecție SQL

Autor: Peter Berry
Data Creației: 13 August 2021
Data Actualizării: 22 Iunie 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Conţinut

Definiție - Ce înseamnă SQL Injection?

O injecție SQL este un atac de calculator în care codul rău intenționat este încorporat într-o aplicație prost concepută și apoi trecut la baza de date backend. Datele dăunătoare produc apoi rezultate de interogare a bazei de date sau acțiuni care nu ar fi trebuit niciodată să fie executate.


O introducere în Microsoft Azure și Microsoft Cloud | În acest ghid, veți afla despre ce este vorba despre cloud computing și despre cum Microsoft Azure vă poate ajuta să migrați și să conduceți afacerea din cloud.

Techopedia explică injecția SQL

Permiteți să parcurgeți un exemplu de atac de injecție SQL:

O aplicație care rulează operațiunile băncii conține meniuri care pot fi utilizate pentru a căuta detaliile clientului folosind puncte de date, cum ar fi numărul de securitate socială al clientului. În fundal, aplicația apelează o interogare SQL care se execută în baza de date, trecând valorile de căutare introduse astfel:

SELECT nume_ client, telefon, adresă, data_de_birth WHERE social_sec_no = 23425

În acest script de exemplu, utilizatorul introduce valoarea 23425 în fereastra meniului aplicației, solicitând utilizatorului să introducă numărul de securitate socială. Apoi, folosind valoarea furnizată de utilizator, în baza de date se execută o interogare SQL.

Un utilizator cu cunoștințe SQL poate înțelege aplicația și, în loc să introducă o singură valoare când i se cere numărul de securitate socială, să introducă șirul „23425 sau 1 = 1”, care este transmis în baza de date după cum urmează:

SELECT nume_ client, telefon, adresă, data_de_birth WHERE social_sec_no = 23425 sau 1 = 1

Clauza WHERE este importantă deoarece introduce vulnerabilitate. Într-o bază de date, condiția 1 = 1 este întotdeauna adevărată și, deoarece interogarea a fost specificată pentru a returna detaliile numărului de securitate socială client (23425) sau WHERE 1 = 1, interogarea va returna toate rândurile din tabel, ceea ce nu a fost intenția inițială.

Exemplul de atac de injecție SQL de mai sus este simplu, dar arată modul în care exploatează o vulnerabilitate pentru a păcăli aplicația pentru a rula o interogare sau o bază de date backend.

Atacurile de injecție SQL pot fi atenuate asigurând proiectarea corectă a aplicației, în special în modulele care necesită o intrare a utilizatorului pentru a rula interogări sau comenzi în baza de date. În exemplul de mai sus, aplicația ar putea fi modificată astfel încât să accepte o singură valoare numerică.