A inyección SQL La inyección SQL (SQLi) es una técnica maliciosa utilizada por los atacantes para comprometer la seguridad de una aplicación web.
Consiste en insertar código SQL malicioso en los campos de entrada de una aplicación web para manipular la base de datos subyacente.. Utiliza vulnerabilidades en la forma en que la aplicación maneja la entrada del usuario y construye sus consultas SQL.
La inyección SQL es una de las muchas tipos de inyecciones maliciosas.
Cómo funciona
El principio básico es el siguiente:
- El atacante inserta código SQL malicioso en un campo de entrada (formulario, URL, etc.)
- La aplicación integra este código sin filtrarlo correctamente en su consulta SQL
- La base de datos ejecuta la solicitud modificada, lo que permite al atacante acceder a los datos o manipularlos.
👉 Ejemplos
He aquí algunos ejemplos comunes de inyecciones SQL:
- Anulación de la autenticación :
sql
SELECCIONE * DESDE usuarios DONDE nombre de usuario = admin --' AND contraseña = 'contraseña
- Le
--
comenta el resto de la solicitud, permitiéndole conectarse sin contraseña. - Extracción de datos :
sql
SELECCIONE * DESDE usuarios DONDE id = 1 UNIÓN SELECCIONE nombre de usuario, contraseña DESDE usuarios --
- Esta inyección recupera todos los nombres de usuario y contraseñas.
💉 Qué hacer al respecto
Hay una serie de buenas prácticas que puede seguir para protegerse:
- Utilizar consultas parametrizadas o procedimientos almacenados
- Validar y filtrar todas las entradas de usuarios
- Aplicar el principio del menor privilegio para las cuentas de bases de datos
- Utilizar herramientas para detectar y prevenir inyecciones SQL
- Formación de desarrolladores en buenas prácticas de seguridad