SQL Injection (SQLi) este una dintre cele mai periculoase vulnerabilități web. Aceasta permite atacatorilor să acceseze, modifice sau șteargă date din baza de date a unei aplicații. Iată cum funcționează și cum o poți preveni eficient.
Injecția SQL apare atunci când datele introduse de utilizatori sunt incluse direct în interogări SQL fără o validare sau protecție adecvată. Acest lucru permite executarea de comenzi malițioase care afectează baza de date.
sql
CopiazăEditează
SELECT * FROM users WHERE username = '$username' AND password = '$password';
Dacă un atacator introduce ' OR '1'='1, autentificarea poate fi ocolită complet.
Evită construirea interogărilor SQL manual. Exemple:
php
CopiazăEditează
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :user AND password = :pass"); $stmt->bindParam(':user', $username); $stmt->bindParam(':pass', $password); $stmt->execute();
Dacă nu poți folosi PDO, atunci folosește mysqli_real_escape_string():
php
CopiazăEditează
$username = mysqli_real_escape_string($conn, $_POST['username']);
DROP, DELETE etc.SQL Injection este o amenințare reală, dar complet evitabilă. Aplică interogări parametrizate, validează datele utilizatorilor și limitează accesul în baza de date. Prevenția este întotdeauna mai ieftină decât remedierea unui atac.
Fii primul care comentează acest articol.