Acasă Securitate Ce este o injecție sql? - definiție din techopedia

Ce este o injecție sql? - definiție din techopedia

Cuprins:

Anonim

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.

Techopedia explică injecția SQL

Să parcurgem 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ă.

Ce este o injecție sql? - definiție din techopedia