Cuando hablamos de una inyección SQL, automáticamente nuestra mente nos sitúa en un artefacto médico que inyecta código SQL en nuestro organismo con efectos devastadores. Y es que este símil no se separa mucho de la realidad. Las inyecciones SQL constituyen la mayor amenaza de nuestros proyectos web y hay que saber estar prevenido ante esto que es más común de lo que muchos desarrolladores creen.
Una inyección SQL en tu sitio web puede echar abajo una base de datos completa, con la consiguiente pérdida de información. Si no contamos con un sistema de backups, puedes dar por hecho que el proyecto se ha ido al garete sin posibilidad de recuperar la información perdida.
Las inyecciones SQL son realizadas por hackers que buscan vulnerabilidades en las peticiones Post o Get de un sitio web. Por regla general, dichas peticiones más tarde se pasan como parámetros a alguna consulta SQL para la inserción, edición, borrado o consulta de información.
¿Cómo protegerse ante una inyección SQL?
-
Limpia las peticiones de caracteres especiales
Hay varias maneras de escapar de estos caracteres especiales, por ejemplo, en PHP tenemos la función mysql_real_scape_string() que habilita que este tipo de caracteres no interfieran en la finalidad de la query en sí.
-
Delimita los valores en las consultas
Usa comillas simples para delimitar cada valor dentro de una consulta. Esto que parece de cajón, a muchos desarrolladores se les olvida.
-
Verifica siempre los datos enviados
Comprueba que no haya caracteres extraños. Si el campo es un email, comprueba que lo enviado tenga el mismo formato que un email. Si es un número de teléfono, comprueba su longitud y su formato también. Si lo que tiene que introducir el usuario es un número entero, valida que esto sea así. Es decir, verifica que los datos recibidos sean del tipo correcto y te ahorrarás muchos disgustos.
Con lo explicado en este artículo podrás hacer frente a las vulnerabilidades de los proyectos web que desarrolles a futuro frente a las inyecciones SQL. Esperamos que te haya servido de ayuda.
Fuente: http://programacion.net/articulo/que_es_una_inyeccion_sql_y_como_protegerse_1041
0 comentarios