Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NRC: 8344
Fecha: 30/12/2022
Mejores Prácticas en la Validación de datos
Filtrado de datos de entrada mediante expresiones regulares.
Ofrecen una forma muy personalizable y flexible a la vez, para confirmar si cualquier
tipo de datos de entrada es valido. Pueden usarse fácilmente en cualquier lugar del código,
aunque la buena práctica es que estas expresiones regulares estén centralizadas y sean
reutilizables, disponiendo las minimas posibles de forma común a todo el proyecto. Hay que
tener especial cuidado en seleccionar expresiones regulares que sean conocidas y contrastadas en
la industria, obteniéndolas desde fuentes fiables como son instituciones gubernamentales de
ciberseguridad y estándares internacionales como el proyecto OWASP.
Validación de datos de entrada nativa de HTML (solo para el lado cliente)
En la capa cliente se puede limitar la introducción de datos a un usuario mediante el
propio HTML de forma nativa. Por ejemplo mediante el atributo «type» se puede especificar que
sea un número entero y mediante los atributos «min» y «max» el rango posible, al igual que con
las fechas. Al igual que se puede filtrar mediante expresiones regulares con el uso del atributo
pattern.
A nivel de modelado de datos como forma de la arquitectura del proyecto
En C# encontramos los siguientes atributos que podemos usar mediante etiquetas,
podemos establecer una tipologia de validación de datos de entrada a nivel del modelado de
datos del proyecto, a sus entidades, DTOs, etc. De esta manera desde la propia definición del
modelo de datos ya estamos a la vez estableciendo sus limitaciones y el control de validación de
datos de entrada.
Validación de datos a nivel de proyecto completo con DataAnnotations de .Net
Required: marca que eI miembro debe tener un campo obligatorio. Esta decoración
puede ser utilizada junto a «ErrorMessage» para indicar un mensaje personalizado de
error en el caso de que no se cumpla esta validación.
Range: marca un rango de valores entre los que debe estar comprendido eI valor
pasado al miembro.
StringLength: indica un tamaño del campo string. Esta anotación puede ir en
conjunción con «MinimunLength» para indicar incluso un tamaño mínimo del campo
string.
RegularExpression: indica una expresión regular que debe ser utilizada para validar eI
valor del campo.
DataType: indica un nombre de un tipo adicional que debe asociarse a un campo de
datos.
CustomValidation: nos permite validar a través de validaciones personalizadas.