SQL injection
Quando un attaccante inserisce codice SQL in un modulo e riesce a farlo eseguire dal database.
Il caso classico: un modulo di login che costruisce la query SELECT * FROM users WHERE name = '$name'. Se l'attaccante inserisce ' OR 1=1 -- come nome, la query diventa SELECT * FROM users WHERE name = '' OR 1=1 --' e restituisce tutti gli utenti.
La soluzione è sempre la stessa: prepared statement, cioè query parametrizzate. L'input dell'utente è un dato, non codice. Quasi ogni linguaggio moderno le supporta nativamente.