Inyección SQL
Cuando un atacante cuela código SQL en un formulario y consigue que la base de datos lo ejecute.
El caso clásico es un formulario de acceso que construye la consulta SELECT * FROM users WHERE name = '$name'. Si el atacante escribe ' OR 1=1 -- como nombre, la consulta se convierte en SELECT * FROM users WHERE name = '' OR 1=1 --' y devuelve todos los usuarios.
La solución es siempre la misma: consultas preparadas o parametrizadas. La entrada del usuario es dato, nunca código. Prácticamente todos los lenguajes modernos lo traen de serie, lo que hace más difícil explicar por qué la inyección sigue en el Top 10 de OWASP décadas después.