Los ataques informáticos son nuestro pan de cada día, y entre ellos destaca últimamente los ataques de inyección de SQL, por este motivo tenemos que prevenirnos al máximo de estos ataques que cada vez se está extendiendo más su uso por la facilidad que tiene de ponerlo en marcha cualquier persona aunque no tenga experiencia en SQL, simplemente sabiendo la cadena de texto adecuada (que puede conseguir en algún foro de esta temática).
este tipo de ataques es exponerse a los ciberataques, además de poner un ejemplo funcional de como hacer una inyección SQL y ahora os voy a explicar que medidas básicas podemos tomar para evitar estos ataques.
Como evitar estos ataques
El principal problema de estos ataques es que si dejamos que el usuario del programa introduzca libremente caracteres sin control ninguno (mediante formularios, por ejemplo) puede llegar a aprovecharse de las comillas (simples y dobles con las que declaramos cadenas de texto o strings
).
Os voy a poner un pequeño ejemplo de una consulta SQL a la que le mandamos dos parámetros (independientemente del lenguaje, ya que cualquier lenguaje que use bases de datos SQL podría ser victima de estos ataques), que mediante el lenguaje que elijamos escribirá tal cual le mandemos los parámetros.
PHP
En PHP tenemos varias formas de hacerlo, entre ellas para bases de datos MySQL tenemos la función mysql_real_escape_string
, que añadiremos en las variables que introducimos en la consulta.
$respuesta=mysql_query("SELECT * FROM `Usuarios` WHERE `user`='".mysql_real_escape_string($name)."' AND `pass`='".mysql_real_escape_string($password)."'")
Conclusión
Se pueden evitar estos ataques en muchos lenguajes distintos, e incluso hay lenguajes que por defecto hay que complicarse para que exista este fallo de seguridad, pero lo que tenemos que saber es que donde hay una consulta SQL puede haber una brecha de seguridad, por lo que recomiendo prestar un mínimo de atención con estos ataques que están tan de moda, y si alguno quiere comentar como hacerlo de otra forma o con otro lenguaje puede hacerlo en los comentarios, o comentar donde hay otros ejemplos.
Acerca de Mi Dylan Irzi
Colombiano, WebMaster, Independent Security Researcher , Apasionado por la Seguridad Informatica, #WhiteHat. Programador. Co-Fundador y Dueño de WebSecurityDev.com