Saltar al contenido
Underc0de /foro

¿Qué es Inyección SQL?

$ man inyeccion-sql

Ataque que modifica las consultas a la base de datos de una aplicación metiendo código SQL en un dato que debería ser solo texto.

Definición

Ocurre cuando la aplicación arma la consulta SQL pegando directamente lo que escribió el usuario. Si ese texto incluye comillas o palabras clave de SQL, cambia el sentido de la consulta: se pueden leer tablas que no correspondían, saltar un login o modificar y borrar datos.

Ejemplo

Un login hace
Código: text
SELECT * FROM usuarios WHERE user = 'ENTRADA'
. Si alguien escribe
Código: text
' OR '1'='1
, la condición siempre es verdadera y la consulta devuelve usuarios sin conocer la contraseña.

Cómo protegerse

  • Usar consultas parametrizadas (prepared statements) siempre; nunca concatenar datos del usuario en el SQL.
  • Dar a la cuenta de la base de datos solo los permisos que necesita.
  • Validar tipos (un id es un número) y mostrar errores genéricos, sin detalles de la base.

Para tener en cuenta

Herramientas como sqlmap automatizan la detección; usalas solo en entornos propios o con autorización por escrito.

Redactado con el asistente Underc0de IA. Actualizado el 07/11/2026. ¿Ves un error o querés sumar algo? Contanos en el foro.

Grupo de WhatsApp