Como: Proteger contra exploits script em um aplicativo Web da Web, Applying HTML Encoding to Strings

A maioria dos scripts maliciosos ocorrem quando os usuários podem obter o código executável (ou script) em seu aplicativo.Por padrão, o ASP.NET fornece validação de solicitação, que gera um erro se uma postagem de formulário contém qualquer HTML.

Você pode ajudar a proteger contra scripts maliciosos das seguintes maneiras:

  • Execute validação de parâmetro em variáveis de formulário, variáveis sequência de caracteres de consulta e valores de cookie.Essa validação deve incluir dois tipos de verificação: verificação de que as variáveis podem ser convertidas em tipo esperado (por exemplo, converter em um número inteiro, converter em data e time e assim por diante) e a verificação de intervalos esperados ou formatação.Por exemplo, uma variável de postagem de formulário que destina-se a ser um inteiro deve ser marcada com o método Int32.TryParse para verificar que a variável é realmente um número inteiro.Além disso, o inteiro resultante deve ser selecionado para verificar que o valor esteja dentro de um intervalo esperado de valores.

  • Aplique codificação HTML para saída de sequência de caracteres quando gravar valores para a resposta.Isso ajuda a garantir que qualquer entrada sequência de caracteres fornecida pelo usuário será processada como texto estático nos navegadores em vez de código de script executável ou elementos HTML interpretados.

Codificação HTML converte elementos HTML usando caracteres reservados ao HTML para que eles sejam exibidos em vez de serem executados.

Para aplicar codificação HTML em uma sequência de caracteres

  • Antes de exibir sequências de caracteres, chame o método HtmlEncode.Elementos HTML são convertidos em representações de sequência de caracteres que o navegador irá exibir em vez de interpretar como HTML.

    O exemplo a seguir ilustra a codificação HTML.Na primeira instância, a entrada do usuário é codificada antes de ser exibida.Na segunda instância, dados de um banco de dados são codificados antes de serem exibidos.

    Observação:

    This example will only work if you disable request validation in the page by adding the @ Page attribute ValidateRequest="false".Não é recomendável que você desative a validação de solicitação em um aplicativo de produção, portanto, certifique-se que você habilitou a validação de solicitação novamente após exibir esse exemplo.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _
        As System.EventArgs) Handles Button1.Click
            Label1.Text = Server.HtmlEncode(TextBox1.Text)
            Label2.Text = _
                Server.HtmlEncode(dsCustomers.Customers(0).CompanyName)
    End Sub
    
    private void Button1_Click(object sender, System.EventArgs e)
    {
        Label1.Text = Server.HtmlEncode(TextBox1.Text);
        Label2.Text = 
            Server.HtmlEncode(dsCustomers1.Customers[0].CompanyName);
    }
    

Consulte também

Conceitos

Visão Geral de Scripts Maliciosos

Visão Geral sobre Ameças de Segurança em Aplicativos da Web

Práticas de segurança básica para aplicativos da Web