Sql injection

Solo disponible en BuenasTareas
  • Páginas : 2 (409 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de octubre de 2010
Leer documento completo
Vista previa del texto
Inyección SQL

Es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadasen las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustadodentro de otro.

Descripción

Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecutemaliciosamente el código "invasor" en la base de datos.

La inyección SQL es un problema de seguridad informática que debe ser tomado en cuenta por el programador para prevenirlo.

EjemploAsumiendo que el siguiente código está en una aplicación web y que existe un parámetro "nombreUsuario" que contiene el nombre de usuario que nosotros le demos, la inyección SQL es posible

| consulta :="SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';" |

Si el usuario escribe su nombre, digamos "Alicia", nada anormal sucedería, laaplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionaría al usuario "Alicia":

|SELECT * FROM usuarios WHERE nombre = 'Alicia';|

Pero si un usuario malintencionado escribe como nombre de usuario:
"Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE'-' = '-", se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):

| SELECT * FROM usuarios WHERE nombre ='Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE '-' = '-'; |

La base de datos ejecutaría la consulta en orden, seleccionaría el usuario 'Alicia', borraría la tabla...
tracking img