1. Glosar/

SQL Injection

SQL Injection este una dintre cele mai răspândite și periculoase vulnerabilități în aplicațiile web. Apare când input-urile furnizate de utilizator sunt inserate direct în interogările SQL fără validare sau parametrizare, permițând unui atacator să modifice logica interogării.

Cum funcționează #

Atacatorul inserează fragmente de cod SQL în câmpurile de input ale aplicației (formulare de autentificare, câmpuri de căutare, parametri URL). Dacă aplicația concatenează aceste input-uri direct în interogările SQL, codul malițios este executat de baza de date cu privilegiile utilizatorului aplicativ. În combinație cu privilegiul FILE al MySQL-ului și un secure-file-priv neconfigurat, atacatorul poate citi fișiere de sistem sau scrie fișiere arbitrare pe server.

La ce folosește #

Înțelegerea SQL injection este fundamentală pentru cine gestionează baze de date în producție, deoarece multe configurații de securitate (precum secure-file-priv, gestionarea privilegiilor și separarea utilizatorilor) există specific pentru a mitiga impactul acestui tip de atac.

Când se folosește #

Termenul descrie un atac de prevenit, nu o tehnică de utilizat. Contramăsurile principale sunt: interogări parametrizate (prepared statements), validarea input-urilor, principiul privilegiului minim pentru utilizatorii bazei de date și configurarea corectă a directivelor precum secure-file-priv.