SQL Injection con ejemplos
Vía Digg leo un artículo sobre inyección de SQL cuya lectura recomiendo a todas aquellas personas que no hayan oído hablar del tema. El artículo está centrado en mostrar posibles vulnerabilidades de aplicaciones desarrolladas sobre ASP.NET y SQL Server, pero muchos de los conceptos que se muestran son aplicables a otras bases de datos y plataformas de desarrollo, como MySQL y PHP.
En el artículo se muestran vulnerabilidades básicas como el uso de cadenas similares a ' OR 1=1; --
como nombre de usuario para conseguir acceso a muchos sitios que requieren autenticación, y continúa aportando más ejemplos que permiten extraer información sobre la estructura de tablas y campos de la base de datos, mecanismos para insertar o modificar información que permitirían crear nuevas cuentas de usuario o modificar las existentes, o ataques más destructivos y muchas veces más sencillos, como la eliminación o vaciado de tablas.
El desarrollo de aplicaciones web no es algo tan fácil como muchos desarrolladores piensan, y es que hay multitud de cuestiones a tener en cuenta, cuestiones entre las que la seguridad toma un papel fundamental. Sin embargo la mayoría de estos riesgos, como los ataques basados en cross-site-scripting (XSS) o SQL Injection, podrían ser evitados de una forma bastante amplia siendo estrictos en el tratamiento que se hace de los datos que envían los usuarios, teniendo en cuenta que el usuario no tiene porque enviar los datos como esperamos, que bien puede equivocarse o intentar ataques de forma premeditada. Para ello es básico, en cada programa que interactúe con el usuario, tener muy claras las variables que se aceptan, comprobar sus contenidos con reglas de validación, controlar los mensajes de error que devuelve el programa para no dar más información de la necesaria, y ponernos en la piel del atacante pensando cómo podríamos sobrepasar estas medidas.
Si esto del SQL Injection te ha abierto la curiosidad te recomiendo también la lectura de este otro PDF con información similar a la del artículo, aunque algo más extensa.
Hola que tal, buen documento pero les recomiendo la operacion net protector de microsft, donde se trabajan seguridad
http://www.microsoft.com/spanish/msdn/latam/netpro/
estoy de acuerdo con Rommy Duarte
Bueno, esa es una buena referencia, aunque muy centrada en microsoft. Es importante tener en cuenta que el SQL Injection suele aprovechar características propias de las diferentes bases de datos y lenguajes de programación, por lo que si sueles usar otras bases de datos diferentes a SQLServer, o lenguajes diferentes, conviene que no limites la información a un solo web, y que investigues posibles fuentes de problemas en la plataforma en la estés desarrollando. Ya se sabe, más vale prevenir que curar…
Un buen documento
http://ruleta.carookee.com
Interesante!!
esta muy bueno el documento sobre todo para mi q aun estoy empesando a aprender sobre la seguridad en la red…
Como se le pueden hacer pruebas a SQL Injection?
Nada es seguro…y menos microsoft…pensar que alguna aplicacion hecha por microsoft es segura, es ser un iluso xD
Snake, no se si te hayas dado cuenta, pero en realidad no tiene que ver solo el fabricante, sino que es responsabilidad del programador y del administrador de la bd. el ver que privilegios tiene cada usuario sobre la misma y como interactua la aplicación con esos datos, además de revisar los datos recibidos en las aplicaciones.
sdsdfs