Una de las técnicas de hacking más temidas por los administradores de bases de datos y los desarrolladores web es el “SQL injection”, la cual consiste en insertar o “inyectar” código malicioso en las sentencias SQL comúnmente utilizadas en gran cantidad de procesos en las aplicaciones actuales.
Hoy en día una aplicación web que no tenga acceso a una base de datos tiene muy poco que ofrecer competitivamente hablando, y quizás es por esta razón primordialmente que esta práctica es tan temida.
¿Cómo funciona? muy simple. Fijémonos en una sentencia SQL muy simple que toma un dato obtenido desde un formulario de búsqueda para obtener los datos coincidentes con dicha información creada en ASP y con una variable (userinput) que será cambiada en tiempo de ejecución por el contenido que inserte el usuario en dicho formulario:
"SELECT * FROM usuarios WHERE login = ' " & userinput & "'"
Al recibir el contenido que el usuario inserta en el campo del formulario como por ejemplo su login la sentencia queda como:
"SELECT * FROM usuarios WHERE login = 'admin'"
Pero que sucedería si el hacker en lugar de “admin” inserta un trozo de sentencia SQL como el siguiente:
'; DROP TABLE usuarios --
La respuesta es simple: La sentencia definitiva quedaría de la siguiente manera:
'SELECT * FROM usuarios WHERE login = '';DROP TABLE usuarios --"
Para quienes no tienen conocimientos básicos de SQL también es fácil entender que a partir de dicho momento habríamos perdido completamente el contenido de la tabla “usuarios” en nuestro sistema.
Este ejemplo anterior es solo uno de los muchos tipos diferentes de SQL injection que existen, sin embargo es uno de los más siniestros. La pregunta más importante es la que surge inmediatamente después de este ejemplo: ¿Cómo puedo saber si mi sitio web es vulnerable al SQL injection? Y si es así, ¿cómo puedo prevenir esta técnica de intrusión tan peligrosa?
Ambas preguntas van de la mano, sin embargo y aunque no es la única medida a ser tomada para evitar este tipo de práctica y es solo un remedio temporal, les tengo un buen dato:
Simplemente verifiquen del lado del servidor (recuerden que del lado cliente el “javascript “se puede deshabilitar) que el contenido que inserta el usuario no contenga comillas simples (las que normalmente se encuentran bajo el símbolo de interrogación en los teclados en español), y reemplácenlas por la entidad HTML de escape correspondiente (')
Existen muchos otros métodos de SQL injection que me comprometo a tratar en otros artículos, e indudablemente la solución que acabo de dar es solo una simple aspirina, pero como la aspirina misma es útil en el 50% de los casos.
Hasta la próxima…
Este blog está dirigido a todos los programadores y desarrolladores en general, en él encontrarán consejos útiles en las respectivas áreas del desarrollo de aplicaciones, especialmente de Aplicaciones y Soluciones Web sobre diferentes entornos y plataformas móviles como Windows Phone y Android.
Suscribirse a:
Comentarios de la entrada (Atom)
Entradas populares
-
Es importante cuando se habla de amenazas en aplicaciones web y otras, establecer un sistema de cálculo estándar que permita a los interesad...
-
Volvemos a mencionar en este artículo la importancia del OWASP (Open Web Application Security Project) y en especial esta vez mencionaremos...
-
Un "error" muy común de los programadores web en cuanto a la seguridad de sus aplicaciones, es acceder directamente a las variable...
-
Las amenazas constantes a las aplicaciones web, el crecimiento de cada vez más veloz de las plataformas desarrolladas en línea y una crecien...
-
Es una indudable ventaja el hecho de poder obtener el número IMEI de un dispositivo móvil desde una aplicación para cualquiera de las plataf...
-
Uno de los problemas que presentamos los desarrolladores es el control de los Cookies usados en transacciones seguras. El primer inconveni...
-
El Phishing ya se ha convertido en un parásito dañino de nuestras aplicaciones y sistemas en Internet. Uno de los ejemplos más claros y mas ...
-
Nuevamente OWASP nos hace llegar la lista de las más importantes vulnerabilidades en lo referente a desarrollo web en su lista del 2017 Top ...
-
Si el video de OWASP del anterior post sobre HSTS (HTTP Strict Transport Security) los dejó con algo de espectativas acerca de la implementa...
-
El ya conocido tipo de estafa que se basa en la simulación de un sitio en Internet para robar los datos de acceso a los usuarios con propó...
1 comentario:
Gracias, muy bien explicado
Publicar un comentario