Inyección sql

Solo disponible en BuenasTareas
  • Páginas : 2 (454 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de enero de 2012
Leer documento completo
Vista previa del texto
Inyección SQL
• A que se refiere el concepto de inyección de SQL.
Una inyección de datos se da cuando una base de datos es vulnerable a la validación de entradas, esto se da cuando un código SQL esinsertado para alterar el funcionamiento normal y hacer que se ejecute maliciosamente, logrando una interacción mediante la búsqueda, extracción o inserción de información o la creación de nuevosusuarios, con diversos niveles de permisos. La inyección SQL permite la ejecución de sentencias SQL no deseadas, que van desde el borrado de tablas, hasta el cambio de permisos, obtención de passwords ydiversos datos de las tablas.
El origen de esta vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en el programa que genera el código SQL, esto puede ocurrir encualquier lenguaje de programación utilizado.
• Identificar algunos ejemplos representativos al respecto
1. SELECT * FROM identificacion WHERE usuario = 'Pepe' AND password = '1234';
DROP TABLEidentificacion;
2. Usuario: ' or '1'='1
Contraseña: ' or '1'='1
SELECT COUNT(*) FROM identificacion WHERE usuario= '' OR '1'='1' AND password = '' OR '1'='1'
• Métodos de prevención en generalControlar errores que puedan ocurrir, cambiando los mensajes por pantallas tipo estándar, como puede ser ”error en la base de datos”, esto con tal de evitar los errores que se muestran por defecto, ya queestos facilitan la información de la base de datos, como por ejemplo los nombres de las tablas.
No usar nombres fácil de detectar para las tablas, ejemplo puede ser “user”, “password”.
Utilizarsiempre las comillas simples (‘) para delimitar las variables que vayas a usar en una consulta a la base de datos. De esa manera la posibilidad de Inyección SQL se ve reducida de forma considerable:SELECT usuario FROM identificacion WHERE usuario= ' $usuario ';
Evitar el uso del operador asterisco (*) cuando deseas obtener dos campos de una tabla, a pesar de que dicha tabla no contenga más que...
tracking img