HttpRequestValidationException Classe

Definição

A exceção que é gerada quando uma cadeia de caracteres de entrada potencialmente mal-intencionada é recebida do cliente como parte dos dados da solicitação. Essa classe não pode ser herdada.

public ref class HttpRequestValidationException sealed : System::Web::HttpException
public sealed class HttpRequestValidationException : System.Web.HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
    inherit HttpException
[<System.Serializable>]
type HttpRequestValidationException = class
    inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
Herança
Atributos

Exemplos

O exemplo de código a seguir demonstra como verificar se há entrada mal-intencionada do usuário usando um HttpRequestValidationException.

Importante

Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma potencial ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Visão geral de explorações de script.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = txt1.Text;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = txt1.Text
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>

Comentários

Restringir e validar a entrada do usuário é essencial em um aplicativo Web para evitar ataques de hackers que dependem de cadeias de caracteres de entrada mal-intencionadas. Ataques de script entre sites são um exemplo desses hacks. Outros tipos de dados mal-intencionados ou indesejados podem ser passados em uma solicitação por meio de várias formas de entrada. Limitando os tipos de dados que são passados em um nível baixo em um aplicativo, você pode evitar eventos indesejáveis, mesmo quando programadores que estão usando seu código não colocam as técnicas de validação adequadas em vigor.

A validação de solicitação detecta entradas de cliente potencialmente mal-intencionadas e gera essa exceção para anular o processamento da solicitação. Uma anulação de solicitação pode indicar uma tentativa de comprometer a segurança do aplicativo, como um ataque de script entre sites. É altamente recomendável que seu aplicativo verifique explicitamente todas as entradas sobre anulações de solicitação. No entanto, você pode desabilitar a validação de solicitação definindo o validateRequest atributo na @ Page diretiva como false, conforme mostrado no exemplo a seguir:

<%@ Page validateRequest="false" %>

Para desabilitar a pages validação de solicitação para seu aplicativo, você deve modificar ou criar um arquivo Web.config para seu aplicativo e definir o validateRequest atributo da seção como false, conforme mostrado no exemplo a seguir:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

Para desabilitar a validação de solicitação para todos os aplicativos no servidor, você pode fazer essa modificação no arquivo Machine.config.

Observação

É altamente recomendável que seu aplicativo verifique explicitamente todas as entradas que ele usa além da validação de solicitação executada pelo ASP.NET. O recurso de validação de solicitação não pode capturar todos os ataques, especialmente aqueles criados especificamente em relação à lógica do aplicativo.

Construtores

HttpRequestValidationException()

Cria uma nova instância da classe HttpRequestValidationException.

HttpRequestValidationException(String)

Cria uma nova exceção HttpRequestValidationException com a mensagem de erro especificada.

HttpRequestValidationException(String, Exception)

Inicializa uma nova instância da classe HttpRequestValidationException com uma mensagem de erro especificada e uma referência à exceção interna que é a causa da exceção.

Propriedades

Data

Obtém uma coleção de pares de chave/valor que fornecem informações definidas pelo usuário adicionais sobre a exceção.

(Herdado de Exception)
ErrorCode

Obtém o HRESULT do erro.

(Herdado de ExternalException)
HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.

(Herdado de Exception)
HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a instância Exception que causou a exceção atual.

(Herdado de Exception)
Message

Obtém uma mensagem que descreve a exceção atual.

(Herdado de Exception)
Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que gerou a exceção atual.

(Herdado de Exception)
WebEventCode

Obtém os códigos de evento associados à exceção de HTTP.

(Herdado de HttpException)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetHtmlErrorMessage()

Obtém a mensagem de erro HTML a ser retornada para o cliente.

(Herdado de HttpException)
GetHttpCode()

Obtém o código de status de resposta HTTP a ser retornado ao cliente.

(Herdado de HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Obtém informações sobre a exceção e adiciona-as ao objeto SerializationInfo.

(Herdado de HttpException)
GetType()

Obtém o tipo de runtime da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que contém o HRESULT do erro.

(Herdado de ExternalException)

Eventos

SerializeObjectState
Obsoleto.

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.

(Herdado de Exception)

Aplica-se a