HttpRequestValidationException Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
A exceção que é lançada quando uma cadeia de entrada potencialmente maliciosa é recebida do cliente como parte dos dados do pedido. Esta 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 seguinte demonstra como verificar a entrada maliciosa do utilizador usando um HttpRequestValidationExceptionarquivo .
Importante
Este exemplo tem uma caixa de texto que aceita a entrada do utilizador, o que constitui uma potencial ameaça à segurança. Por defeito, as páginas Web do ASP.NET validam que a entrada do utilizador não inclui elementos de script ou HTML. Para mais informações, consulte Visão Geral dos Exploits de Scripts.
<%@ 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>
Observações
Restringir e validar a entrada do utilizador é essencial numa aplicação Web para prevenir ataques de hackers que dependem de cadeias de entrada maliciosas. Os ataques cross-site scripting são um exemplo destes ataques. Outros tipos de dados maliciosos ou indesejados podem ser transmitidos num pedido através de várias formas de entrada. Ao limitar os tipos de dados que são passados a um nível baixo numa aplicação, pode evitar eventos indesejáveis, mesmo quando os programadores que usam o seu código não implementam as técnicas adequadas de validação.
A validação do pedido deteta uma entrada potencialmente maliciosa do cliente e lança esta exceção para abortar o processamento do pedido. Um aborto de pedido pode indicar uma tentativa de comprometer a segurança da sua aplicação, como um ataque cross-site scripting. É fortemente recomendado que a sua aplicação verifique explicitamente todas as entradas relativas a abortos de pedidos. No entanto, pode desativar a validação de pedidos definindo o validateRequest atributo na @ Page diretiva para false, como mostrado no exemplo seguinte:
<%@ Page validateRequest="false" %>
Para desativar a validação de pedidos para a sua aplicação, deve modificar ou criar um ficheiro Web.config para a sua aplicação e definir o validateRequest atributo da pages secção para false, como mostrado no exemplo seguinte:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Para desativar a validação de pedidos para todas as aplicações no seu servidor, pode fazer esta modificação no ficheiro Machine.config.
Note
É fortemente recomendado que a sua aplicação verifique explicitamente todas as entradas que utiliza, além da validação do pedido realizada pelo ASP.NET. A funcionalidade de validação de pedidos não consegue detetar todos os ataques, especialmente aqueles criados especificamente contra a lógica da sua aplicação.
Construtores
| Name | 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
| Name | Description |
|---|---|
| Data |
Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção. (Herdado de Exception) |
| ErrorCode |
Obtém o |
| HelpLink |
Obtém ou define um link para o ficheiro de ajuda associado a esta exceção. (Herdado de Exception) |
| HResult |
Recebe 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 |
Recebe uma mensagem que descreve a exceção atual. (Herdado de Exception) |
| Source |
Obtém ou define o nome do aplicativo ou o objeto que causa o erro. (Herdado de Exception) |
| StackTrace |
Obtém uma representação string dos frames imediatos na stack de chamadas. (Herdado de Exception) |
| TargetSite |
Obtém o método que lança a exceção atual. (Herdado de Exception) |
| WebEventCode |
Obtém os códigos de evento associados à exceção HTTP. (Herdado de HttpException) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetBaseException() |
Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes. (Herdado de Exception) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetHtmlErrorMessage() |
Recebe a mensagem de erro HTML para devolver ao cliente. (Herdado de HttpException) |
| GetHttpCode() |
Recebe o código de estado da resposta HTTP para devolver ao cliente. (Herdado de HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Obtém informação sobre a exceção e adiciona-a ao SerializationInfo objeto. (Herdado de HttpException) |
| GetType() |
Obtém o tipo de execução da instância atual. (Herdado de Exception) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma string que contém o HRESULT do erro. (Herdado de ExternalException) |
evento
| Name | 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) |