HttpRequestValidationException Classe

Definição

A exceção 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 de usuário mal-intencionado 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 de script ou HTML. Para obter mais informações, consulte Visão geral das 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 uma entrada de cliente potencialmente mal-intencionada 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 relacionadas a anulações de solicitação. No entanto, você pode desabilitar a validação da solicitação definindo o validateRequest atributo na @ Page diretiva como false, conforme mostrado no exemplo a seguir:

<%@ Page validateRequest="false" %>

Para desabilitar a 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 pages 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 na lógica do aplicativo.

Construtores

Nome Description
HttpRequestValidationException()

Cria uma nova instância da HttpRequestValidationException classe.

HttpRequestValidationException(String, Exception)

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

HttpRequestValidationException(String)

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

Propriedades

Nome Description
Data

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

(Herdado de Exception)
ErrorCode

Obtém o HRESULT 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 atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a Exception instância 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 do objeto que causa o erro.

(Herdado de Exception)
StackTrace

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

(Herdado de Exception)
TargetSite

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

(Herdado de Exception)
WebEventCode

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

(Herdado de HttpException)

Métodos

Nome Description
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 causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetHtmlErrorMessage()

Obtém a mensagem de erro HTML para retornar ao 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 a adiciona ao SerializationInfo objeto.

(Herdado de HttpException)
GetType()

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

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

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

(Herdado de ExternalException)

Eventos

Nome Description
SerializeObjectState

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