Spring GDS 25 Aniversario
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
La SQL injection es un ataque en el que una entrada no confiable altera la consulta de base de datos que ejecuta un servidor. Cuando una aplicación construye una consulta pegando la entrada del usuario directamente dentro de una cadena, un atacante puede escribir una entrada que cambia lo que hace la consulta. En lugar de buscar un nombre de usuario, la consulta podría devolver todas las filas, saltarse la comprobación de contraseña o eliminar una tabla. El ataque golpea la base de datos y los datos que hay detrás, que es lo que lo hace peligroso.
Funciona porque la aplicación no puede distinguir entre dato y comando una vez se mezclan en una sola cadena. Introduce un valor como ' OR '1'='1 en un formulario de login construido así y la condición se vuelve siempre verdadera, dejando entrar a alguien sin contraseña. Esto difiere del XSS, que apunta al navegador de otro usuario. La SQL injection apunta al servidor y a su almacén. Ambos vienen del mismo fallo, confiar en la entrada, pero atacan capas distintas.
La solución son las consultas parametrizadas, también llamadas sentencias preparadas. La estructura de la consulta se define aparte de los valores, así la entrada del usuario nunca puede cambiar el comando. Los ORM y los query builders lo hacen por defecto, por eso son más seguros que las cadenas hechas a mano. Las cuentas de base de datos con privilegios mínimos y la validación de entrada añaden más capas, limitando el daño aunque algo se cuele.
Nunca construimos consultas concatenando la entrada del usuario. Las consultas parametrizadas son el valor por defecto en cada proyecto, y las cuentas de base de datos reciben solo los permisos que el trabajo necesita y nada más. Cuando revisamos un pull request, cualquier consulta cruda que maneje entrada es una alerta en la que nos paramos.
Esto vive dentro de nuestra práctica más amplia de estrategia y QA governance a través del desarrollo web y las aplicaciones web a medida. La seguridad es parte del aseguramiento de calidad de software, comprobada de forma continua en lugar de auditada una vez al final. Hemos construido sistemas que guardan datos sensibles de clientes y de negocio para marcas donde una filtración sería un fallo real, y esa responsabilidad moldea cómo escribimos la capa de datos desde el primer día.
¿Tienes una base de datos con datos que no te puedes permitir perder? Asegurémonos de que sigue bajo llave.
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
Convertir una marca en un negocio que funciona.
Medio millón de personas. Una app. Cero caos.















