HttpRequestValidationException Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 a 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 possível 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 impedir 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 de 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 false
como , 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 por 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 |
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) |