¿ Un ataque de SQL , o un ataque de inyección SQL , consiste en la inserción o inyección de código malicioso en los valores o variables , que un usuario introduce en un programa informático. El código malicioso se vincula o concatenada , con comandos SQL legítimos para producir un comando que produce resultados inesperados. SQL
SQL , también conocido como Estructura Query Language , es un lenguaje estándar de la industria para la creación , actualización y consulta de bases de datos relacionales o bases de datos que contienen varios archivos de información relacionada, por lo general almacenan en tablas de filas y columnas . SQL menudo se incrusta en los lenguajes de programación de propósito general para crear programas que permiten a los usuarios interactuar con una base de datos . Un programa puede incluir sentencias SQL tales como "SELECT * FROM nombre_tabla DONDE nombre de tabla . Nombrecampo = nombrevariable " donde nombre_tabla es el nombre de una tabla en la base de datos , nombre de campo es el nombre de una columna o un campo , en esa mesa, y nombrevariable es un entrada de valor por parte del usuario .
gravedad
la gravedad de un ataque SQL sólo está limitado por la imaginación y la habilidad del atacante. Mediante la inserción estratégica del ( ;) punto y coma y guión doble (-) - caracteres que delimitan los comandos SQL y los comentarios , respectivamente - Los atacantes pueden interrumpir prematuramente comandos existentes y añadir sus propios comandos nuevos . Estos nuevos comandos podrían, por ejemplo , extraer información confidencial de la base de datos, modificar o eliminar datos, o conceder atacantes privilegios administrativos completos a la base de datos. En el ejemplo anterior , si la sentencia de SQL lee "SELECT * FROM nombre_tabla DONDE nombre de tabla nombre de campo = '". Nombrevariable + +' " ; , un usuario puede introducir comandos SQL adicionales y así armar una consulta algo así como" SELECT * FROM nombretabla.nombrecampo = ' somevalue ' ; . nombre_tabla DROP TABLE
Efectos
SQL ataca normalmente conducir a la pérdida de la confidencialidad y la integridad de los datos , así como otros problemas graves , por lo que las organizaciones deben tomar en serio la amenaza de ataques SQL. SQL ataca normalmente ocurrir cuando los datos entran en un programa de una fuente de datos no es de confianza o se utilizan para construir dinámicamente una consulta SQL , o ambos . Ataques SQL pueden obviamente afectará SQL en sí , sino también cualquier plataforma que requiere la interacción con una base de datos SQL . Sitios web Base de datos basada son objetivos comunes de SQL , simplemente porque los atacantes pueden detectar y explotar fallas de SQL fácilmente.
Prevención
Siempre que el código SQL inyectado durante un ataque SQL contiene hay errores de sintaxis , se ejecutará con éxito y no se puede detectar mediante programación. Por lo tanto, los programadores de bases de datos deben validar todos los datos del usuario y examinar cuidadosamente cualquier código de programa que construye y ejecuta comandos SQL dinámicos para las vulnerabilidades .