SQL injection
Ataque a bases de datos: el atacante inyecta código SQL malicioso en formularios web, consiguiendo extraer o modificar datos.
Qué es SQL injection
SQL Injection (SQLi) es un ataque a webs vulnerables: el atacante introduce código SQL en campos de formulario (login, búsqueda) que la web ejecuta directamente. Permite leer, modificar o borrar la base de datos.
Cómo funciona
En un campo "usuario" mal validado, el atacante introduce: ' OR 1=1 --. El SQL se convierte en algo como SELECT * FROM users WHERE name = '' OR 1=1 -- (devuelve todos los usuarios). Variantes más complejas extraen contraseñas, tarjetas, etc.
Cómo protegerte
Como usuario: nada que hacer. Como desarrollador: usar prepared statements, ORMs, validación estricta de inputs. Es el ataque #1 del OWASP Top 10.
Datos curiosos
- Sigue siendo uno de los ataques más comunes (#1 OWASP Top 10 durante años).
- 90% de webs antiguas tienen alguna vulnerabilidad SQLi.
- Causó brechas masivas: Sony 2011, TalkTalk 2015, etc.
Preguntas frecuentes
¿Quién es responsable?
El desarrollador de la web. Como usuario, solo puedes evitar webs sospechosas y usar contraseñas únicas.
¿Cómo me protejo?
Usar contraseñas únicas (gestor + 2FA) para que si una web es vulnerada, no afecte a otras cuentas.
¿Está pasado de moda?
No. Sigue siendo común. Los frameworks modernos lo previenen, pero webs antiguas o mal codificadas siguen vulnerables.