SQL Injection es una vulnerabilidad donde el atacante manipula consultas SQL insertando código malicioso en las entradas de usuario.
Cómo ocurre
Concatenar cadenas en SQL: SELECT * FROM users WHERE id = ' + id + ' permite al atacante inyectar ' OR '1'='1.
Prevención: Consultas parametrizadas
Usa placeholders: SELECT * FROM users WHERE id = ?. La base de datos escapa los valores automáticamente. Nunca concatenes entradas en SQL.
ORMs como protección
Prisma, TypeORM, Sequelize, Drizzle usan consultas parametrizadas internamente. Pero cuidado con $raw o executeRaw que pueden ser inseguras.
Defensa adicional
Principio de mínimos privilegios (usuario DB solo lectura/escritura necesaria). Validación de entrada (tipo, longitud, formato). WAF para capa extra.

