Una inyección SQL es un ataque malintencionado en una base de datos informática , por lo que un atacante inserta o inyecta , una consulta SQL - una invitación formal a la base de datos - en una cadena que es finalmente ejecutados por la base de datos ? , a través de los datos que entra dentro de un programa de ordenador . Si tiene éxito , una inyección SQL puede extraer información confidencial de la base de datos, insertar, actualizar o eliminar datos o incluso apagar el sistema de gestión de base de datos. SQL dinámico
inyección SQL se aprovecha de una técnica de programación conocida como "SQL dinámico. " El texto completo de la sentencia de SQL dinámico , o un comando , se desconoce cuando se compila un programa, sino que se construye de forma dinámica , a partir de los datos introducidos por el usuario cuando se ejecuta el programa. Un atacante termina el comando construido prematuramente y agrega un nuevo comando , terminado con una marca de comentario , tales como " - " , de modo que cualquier texto posterior se ignora en tiempo de ejecución . En una forma un poco más sofisticado de la inyección de SQL , un atacante inyecta código malicioso en los datos que se almacena en la base de datos ; cuando los datos almacenado se recupera y se utiliza para construir una instrucción SQL dinámico , se ejecuta el código malicioso
< . br> Efectos
Exactamente lo que los atacantes pueden lograr mediante inyección SQL depende de su imaginación y habilidad, pero las consecuencias típicas de una inyección SQL son la pérdida de confidencialidad , pérdida de integridad de los datos y los problemas relacionados con la la autenticación o autorización de los usuarios de bases de datos . Si la información de autorización se lleva a cabo en la propia base de datos , una inyección SQL puede extraer la información , o modificarla , de modo que los usuarios no autorizados pueden conectarse a la base de datos.
Afectados
Plataformas
inyección SQL , obviamente, se aplica el SQL , el lenguaje de consulta de bases de datos más comunes, pero cualquier plataforma que requiere la interacción con una base de datos SQL se puede ver afectada . Vulnerabilidades de inyección SQL son fáciles de detectar y fácil de explotar , lo que ha supuesto que la inyección SQL se ha convertido en un problema común con los paquetes de software de bases de datos y sitios web con bases de datos .
Validación
< p > Si un ataque inyecta código malicioso SQL que se ejecuta sin errores , no hay manera de detectar la inyección de SQL desde dentro de un programa de ordenador . Por lo tanto, los programadores de bases de datos deben revisar todo el código de programa que construye sentencias de SQL dinámico y validar todos los datos del usuario, sin hacer ninguna suposición sobre el tamaño , el contenido o el tipo de los datos. Un atacante puede insertar deliberadamente una declaración " DROP TABLE" , o alguna otra declaración, igualmente malicioso en un campo de texto , por lo que los programadores deben asegurarse de que los programas se comporten adecuadamente en tales circunstancias.
< Br >