publicado el 2007-10-25 por ikki - categoría: Programación
Terminaste de hacer la maquetación, el diseño se ve bien y te convence, montas tu sitio en la red y le das promoción para que lo visiten... pum!... el sitio se cae sin razón aparente. Has sido víctima de un code injection!.
La inyección de código (o code injection) es una técnica que consiste en insertar en tu sitio (y potencialmente también a tus bases de datos!) código que toma venjata de alguna debilidad en tu programación o en el sistema en el que se aloja tu sitio. Los motivos pueden ser variados, aunque los más comunes pueden ser:
...y la lista sigue y sigue. Si buscas por Internet, encontrarás muchísima documentación al respecto así como historias de terror como las que aquí les cuento. En la mayoría de los casos se recomienda prestar mayor atención a la validación de la data que los usuarios ingresan a tu sitio. Hoy, por ejemplo, encontré un website donde en la sección de Links se te permitía agregar tu página como una forma de intercambio de links. Al ingresar la descripción de mi sitio (en inglés), uno de los apóstrofes que coloqué "a venezuelan's blog..." (sin la intención de hacer ningún daño, he de aclarar) hizo que MySql Server arrojara un error de sintaxis, es decir, el query (o sentencia sql) fue ejecutado sin hacer ninguna validación a la data ingresada. Yo, en plan de buen samaritano, le notifiqué al webmaster sobre la incidencia para que tomara cartas en el asunto :).
¿Cómo se logra el code injection? Por lo general, el atacante utiliza cualquier medio en tu sitio que permita el envío de información: formularios (como los de login o para agregar un comentario a tu foro o artículo), includes, a través de las URL, etc. Imagina que pasaría si...:
En la próxima entrega discutiremos algunas estrategias para ayudarnos a mejorar la seguridad de nuestro sitio. Hasta pronto!