Featured image of post Prevención de SQL InjectionFeatured image of post Prevención de SQL Injection

Prevención de SQL Injection

Comprehensive guide to SQL injection prevention covering parameterized queries, ORM protection, stored procedures, WAF bypass, NoSQL variants, and automated scanning.

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.