ASP.NET versão 1.1
ASP.NET versão 2.0
Visão geral
É necessário validar todas as entradas não confiáveis em seu aplicativo. Você deve assumir que qualquer entrada dos usuários é mal-intencionada. Entradas de usuários em seu aplicativo Web incluem campos de formulário, seqüências de consulta, cookies do lado do cliente e valores do ambiente do navegador, como seqüências de caracteres de agentes de usuários e endereços IP.
Uma validação pobre das entradas é uma vulnerabilidade comum que pode permitir que seu aplicativo seja alvo de inúmeros ataques de injeção. Os seguintes são tipos comuns de ataques que exploram a validação pobre ou inexistente de entradas:
Injeção de SQL. Se você gerar consultas SQL dinâmicas baseadas em entradas do usuário, um invasor poderá injetar comandos SQL mal-intencionados que poderão ser executados pelo banco de dados.
Scripts intersites. Ataques de scripts intersites (XSS) exploram vulnerabilidades na validação da página da Web injetando código de script no lado do cliente. Esse código é subseqüentemente enviado a um computador de usuário desavisado e executado no navegador. Como o navegador baixa o código do script a partir de um site confiável, ele não tem como determinar se o código é legítimo.
Acesso não autorizado a arquivos. Se o código aceitar entradas de um chamador, um usuário mal-intencionado poderia potencialmente manipular as operações do código relacionadas a arquivos, como acessar um arquivo que não deveria ser acessado ou explorar o código injetando dados inválidos.
Observação: ataques de injeção funcionam em conexões SSL (Secure Socket Layer) de HTTP e HTTPS. A criptografia não fornece nenhuma defesa.
A abordagem geral para a validação de entradas é resumida aqui. Você deve aplicar esta abordagem a todas as entradas recebidas da rede, como caixas de texto e outras entradas de campos de formulário, parâmetros de seqüências de consulta, cookies, variáveis de servidor e parâmetros de métodos da Web. Observe que a estratégia é primeiramente permitir apenas as entradas válidas e, em seguida, recusar as entradas inválidas. Isso é porque é fácil definir as entradas válidas para seu aplicativo, mas não é possível antecipar o formato de todas as entradas mal-intencionadas.
Verifique as entradas válidas da seguinte maneira:
Restrição: verifique os dados válidos conhecidos, validando o tipo, o comprimento, o formato e o intervalo. Para restringir entradas de controles do servidor, utilize controles do validador do ASP.NET. Para restringir entradas de outras fontes, use expressões regulares e validação personalizada.
Rejeição: verifique dados inválidos conhecidos e rejeite as entradas inválidas.
Correção: algumas vezes, também é necessário corrigir entradas e tornar seguras as entradas potencialmente mal-intencionadas. Por exemplo, se o aplicativo oferecer suporte a campos de entrada em formato livre, como campos de comentários, você poderá permitir determinados elementos HTML seguros.
Até o Próximo Artigo.
Fonte: http://msdn.microsoft.com

Nenhum comentário:
Postar um comentário