SQL Injection (SQLi) apare atunci când date furnizate de utilizator sunt concatenate direct într-o comandă SQL fără a fi tratate ca parametri literali. Atacatorii pot eluda autentificarea, citi sau distruge întreaga bază de date și, în anumite cazuri, pot executa comenzi la nivelul sistemului de operare (prin xp_cmdshell sau LOAD_FILE).
Mecanismul de apărare garantat
Singura metodă 100% eficientă de apărare este utilizarea interogărilor parametrizate (Prepared Statements) sau a ORM-urilor moderne (Prisma, TypeORM, Hibernate), unde motorul SQL compilează structura logică a interogării separat de datele transmise.
Exemplu: Cod vulnerabil vs Cod securizat în Node.js / PostgreSQL
// ❌ VULNERABIL: Concatenare directă
const query = `SELECT * FROM users WHERE email = '${req.body.email}'`;
// ✅ SECURIZAT: Interogare parametrizată cu prepared statement
const querySecurizat = 'SELECT * FROM users WHERE email = $1';
const rezultat = await db.query(querySecurizat, [req.body.email]);
Întrebări & Exemple de Cod:
Vulnerabilitatea SQL Injection (SQLi) și PrevenireaAi o nelămurire despre utilizarea comenzii
Vulnerabilitatea SQL Injection (SQLi) și Prevenireasau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.