¿Que es SQL Injection?

SQL Injection es una vulnerabilidad de seguridad en la implementación de la validación en una base de datos, que es aprovechada por el atacante para obtener acceso a la misma. La vulnerabilidad ocurre cuando se inyecta código SQL en los parámetros pasados por el usuario, para provocar la ejecución de una sentencia SQL que de acceso a la base de datos.

Si la se encuentra implementado de esta forma:
consulta:= "SELECT * FROM usuarios 
WHERE
nombre = '
" + nombreUsuario + "';"

el atacante podría escribir:

"Pepe'; DROP TABLE usuarios; SELECT * FROM datos
WHERE nombre LIKE '%
",

(teniendo en cuenta que Pepe es válido)

se ejecutaría:

SELECT * FROM usuarios WHERE nombre = 'Pepe';
DROP TABLE usuarios;
SELECT * FROM datos WHERE nombre LIKE '%
';

(borraría la tabla 'usuarios' y seleccionaría datos que
quizá no están disponibles para los usuarios web comunes)

La solución al SQL Injection es la verificación de todos los parámetros y consultas hacia la base de datos.

0 comentarios: