Recomendaciones sobre validaciones de datos

Hace unos días un colega me preguntaba sobre consideraciones o recomendaciones de seguridad a la hora de diseñar una aplicación.

Aprovechando unos minutos de tiempo libre que tengo, me animo a plasmar un par de recomendaciones sobre la validación de datos, uno de los puntos sensibles en la seguridad de nuestras aplicaciones, sobre todo en las aplicaciones web.

Espero ir agregando material básico que demuestre los problemas que podría generar y también algunas formas de prevenir estos problemas de forma práctica. 

Validación de datos (de fuentes externas en general, como lo que ingresa el usuario, pero también de  datos que provengan, por ejemplo,  de otros sistemas)

·         NO confíe en la validación en el cliente, una de las premisas debe ser “la validación en el cliente no es validación” simplemente porque no se puede asegurar que esta se realice de forma adecuada, o incluso que se llegue a realizar. Hay que recordar que la mayoría de las validaciones en el cliente son hechas con lenguajes de script (javascript principalmente) el cual puede ser deshabilitado en los exploradores.

·         No confíe en los valores extraídos desde recursos susceptibles a ser modificados, esto incluye campos de formulario (como los hidden por ejemplo),  cookies, query strings, HTTP headers, etc.

·         Valide el tipo, formato, rango y largo de los datos. Es decir, si lo que va a ingresar es un email, que lo ingrese tenga la estructura de un email, sea de tipo string y un largo determinado (por ejemplo 50 caracteres). Si va a ingresar un entero, validar que el valor ingresado sea un entero y no un string.

·         Considere usar un sistema centralizado de validación de los datos. Muchas veces encontramos que los mismos puntos dentro de una aplicación son validados de maneras distintas y con distintos procedimientos. Unifiquemos los criterios de validación por ejemplo de fechas, rangos, formatos, etc.

·         Esté atento a los posibles problemas de canonicalización. (** No tiene nada que ver con los santos ni el vaticano, si no sabes por dónde va este tema ya lo explicaré en un post futuro, paciencia)

Mil disculpas por lo resumido del aporte, pero ya lo iremos ampliando de a poco, paciencia ;-)

Published 27/4/2009 14:19 por Mauricio Gomez
Archivado en: ,
Comparte este post:
http://geeks.ms/blogs/mgomez/archive/2009/04/27/recomendaciones-sobre-validaciones-de-datos.aspx