Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo .net Magazine 64 - Validation Application Block - Parte 1
Artigo da Revista .NET Magazine - Edição 64.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

Boas Práticas
Validation Application Block
Boas Práticas na construção de validações – Parte 1
Do que trata o artigo
Boas práticas, encapsulamento das validações de um determinado objeto.
Para que serve
Validação de objetos de forma a permitir reusabilidade entre componentes de uma aplicação e também suporte para validar entrada de informações em variados tipos de front-end.
Em que situação o tema é útil
Aplicações que necessitem validar objetos através de suas camadas mantendo um ponto único para configuração das regras de validação através de técnicas simples e de fácil manutenção.
Resumo do DevMan
Este artigo, dividido em duas partes, apresentará o Validation Application Block, disponibilizado juntamente com a Enterprise Library e exemplos para criação de validações a partir das opções básicas do bloco ou estendendo suas classes para desenvolver validações mais complexas, veremos também as facilidades que este bloco oferece para tratar o input através de várias opções de front-end.
Desenvolver aplicações confiáveis e seguras requer um considerável esforço, sob o ponto de vista do usuário, esses requisitos são indispensáveis e na maioria dos casos determinantes para a utilização de uma aplicação. Entende-se por “confiável” a capacidade de um software realizar e manter seu funcionamento em circunstâncias de rotina, incluindo circunstâncias hostis e inesperadas, sendo assim, na medida em que aumentamos a confiabilidade de uma aplicação reduzimos a superfície de ataques e vulnerabilidades de segurança.
Grande parte das aplicações desenvolvidas tem por objetivo final armazenar informações relacionadas a um determinado negócio para posterior consulta. Não é difícil compreendermos rapidamente que uma informação armazenada de maneira distorcida ou imprópria para negócio constitui um grande problema. Um conjunto de regras de validação para a entrada e transporte de dados se faz necessário para garantirmos a consistência do armazenamento final, contudo a manutenção dessas regras de validação pode gerar uma sobrecarga de esforço além de abrir a possibilidade de discrepâncias entre as diversas camadas que o dado precisa percorrer do front-end até o banco de dados.
Felizmente, conciliar os aspectos de confiabilidade e segurança na entrada de dados de uma aplicação com facilidade de desenvolvimento e manutenção é um problema resolvido por alguns frameworks e bibliotecas disponíveis no mercado, que, aliado a boas práticas de codificação, destacam os bons softwares dos ruins.
Problemas intrínsecos ao input de dados das aplicações
Veremos a seguir alguns riscos inerentes à entrada de dados das aplicações bem como seu contexto:
· Injeção de código – Falando sobre segurança, quando uma aplicação permite que um usuário mal intencionado utilize técnicas (como injeção de código SQL, por exemplo) para realizar operações indevidas, as informações são expostas a danos muitas vezes irreversíveis ou de difícil reparação. A entrada de dados com validações eficazes seja por formulários Web, aplicações Windows Forms, Web Services, WCF, entre outros, é a primeira barreira contra distorções das informações ou ataques maliciosos;
· HTML Embedding – Este tipo de técnica de ataque consiste em informar tags de HTML nos inputs de formulários Web para que haja o acréscimo de informações no momento do browser renderizar uma página, podendo expor alguma falha de segurança;
· "
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Trabalha desde 2002 com tecnologias da Microsoft com foco em .NET e possui as certificações MCP, MCAD, MCSD .NET, MCTS, MCITP e MCT. No início de 2009 realizou uma vontade antiga e começou a escrever artigos para a revista .net Magazine, onde procura contribuir com experiências vividas em projetos ...



