Hoy, en uno de esos intentos por escribir algo que no solo tenga que ver con fallos de seguridad informática me decidí a escribir un post básico sobre las vulnerabilidades más comunes en aplicaciones web y como sanitizarlas.
All the input is evil - III de III
Trataremos básicamente los principales fallos de una aplicación web que permiten a un atacante "operar" con determinado fin y finalidad.
Hace no mucho asistí (vía streaming tampoco os volvais locos) a una charla de mi amigo @chemaalonso cuyo título era "All the input is evil", lo cual viene a explicar que todos los datos de entrada en la aplicación son malignos.
La charla fue bastante amena y estoy seguro de que a partir de ahora cuando programeis una aplicación os acordareis del título e intentareis sanitizar y controlar al máximo los parámetros de entrada (aunque siempre hay algún cafre que antepone la funcionalidad a la seguridad). }:))
1. - Inyecciones SQL básicas.
Típico caso vulnerable: news.php?new=123
Sabemos (y el programador debe de saberlo) que el código anterior es vulnerable a sql injection. También si nos fijamos sabemos que siempre usamos un id numérico, ¿entonces?
Para mi el código anterior sanitizado sería:
En casos en donde el parámetro de entrada tiene que ser alfanumérico, debemos de hacerlo de la siguiente forma:
2. - Ataque XSS (Cross Site Scripting)
Otro típico caso es el buscador en donde se imprime la palabra que se introdujo en el textbox.
Y aquí el código corregido sanitizando los parámetros de entrada:
¿Fácil no? Pues pegaros una sesión de google hacking y vereis la cantidad de sitios que "pasan" de la seguridad.
Yo me voy a sentar esperando la segunda parte de esta entrada. }:)) Saludos!










0 comentarios:
Publicar un comentario en la entrada