HttpRequestValidationException Clase

Definición

Excepción que se produce cuando se recibe una cadena de entrada potencialmente malintencionada del cliente como parte de los datos de solicitud. Esta clase no puede heredarse.

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
Herencia
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo comprobar si hay entradas de usuario malintencionadas mediante .HttpRequestValidationException

Importante

Este ejemplo tiene un cuadro de texto que acepta la entrada del usuario, que es una amenaza de seguridad potencial. De forma predeterminada, ASP.NET páginas web validan que la entrada del usuario no incluye elementos HTML ni de script. Para obtener más información, consulte Información general sobre vulnerabilidades de seguridad 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>

Comentarios

Restringir y validar la entrada del usuario es esencial en una aplicación web para evitar ataques de hacker que se basan en cadenas de entrada malintencionadas. Los ataques de scripting entre sitios son un ejemplo de estos hacks. Otros tipos de datos malintencionados o no deseados se pueden pasar en una solicitud a través de varias formas de entrada. Al limitar los tipos de datos que se pasan a un nivel bajo en una aplicación, puede evitar eventos no deseados, incluso cuando los programadores que usan el código no colocan las técnicas de validación adecuadas.

La validación de solicitudes detecta la entrada de cliente potencialmente malintencionada y produce esta excepción para anular el procesamiento de la solicitud. Una anulación de solicitud puede indicar un intento de poner en peligro la seguridad de la aplicación, como un ataque de scripting entre sitios. Se recomienda encarecidamente que la aplicación compruebe explícitamente todas las entradas relacionadas con las anulaciones de solicitud. Sin embargo, puede deshabilitar la validación de solicitudes estableciendo el validateRequest atributo en la @ Page directiva falseen , como se muestra en el ejemplo siguiente:

<%@ Page validateRequest="false" %>

Para deshabilitar la validación de solicitudes para la aplicación, debe modificar o crear un archivo Web.config para la aplicación y establecer el validateRequest atributo de la pages sección falseen , como se muestra en el ejemplo siguiente:

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

Para deshabilitar la validación de solicitudes para todas las aplicaciones del servidor, puede realizar esta modificación en el archivo Machine.config.

Note

Se recomienda encarecidamente que la aplicación compruebe explícitamente todas las entradas que usa además de la validación de solicitudes realizada por ASP.NET. La característica de validación de solicitudes no puede detectar todos los ataques, especialmente aquellos diseñados específicamente en la lógica de la aplicación.

Constructores

Nombre Description
HttpRequestValidationException()

Crea una nueva instancia de la HttpRequestValidationException clase .

HttpRequestValidationException(String, Exception)

Inicializa una nueva instancia de la HttpRequestValidationException clase con un mensaje de error especificado y una referencia a la excepción interna que es la causa de la excepción.

HttpRequestValidationException(String)

Crea una nueva HttpRequestValidationException excepción con el mensaje de error especificado.

Propiedades

Nombre Description
Data

Obtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario sobre la excepción.

(Heredado de Exception)
ErrorCode

Obtiene el HRESULT del error.

(Heredado de ExternalException)
HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.

(Heredado de Exception)
HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.

(Heredado de Exception)
InnerException

Obtiene la Exception instancia que provocó la excepción actual.

(Heredado de Exception)
Message

Obtiene un mensaje que describe la excepción actual.

(Heredado de Exception)
Source

Obtiene o establece el nombre de la aplicación o el objeto que provoca el error.

(Heredado de Exception)
StackTrace

Obtiene una representación de cadena de los fotogramas inmediatos en la pila de llamadas.

(Heredado de Exception)
TargetSite

Obtiene el método que produce la excepción actual.

(Heredado de Exception)
WebEventCode

Obtiene los códigos de evento asociados a la excepción HTTP.

(Heredado de HttpException)

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve la Exception causa principal de una o varias excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetHtmlErrorMessage()

Obtiene el mensaje de error HTML que se va a devolver al cliente.

(Heredado de HttpException)
GetHttpCode()

Obtiene el código de estado de respuesta HTTP que se va a devolver al cliente.

(Heredado de HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Obtiene información sobre la excepción y la agrega al SerializationInfo objeto .

(Heredado de HttpException)
GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que contiene el valor HRESULT del error.

(Heredado de ExternalException)

Eventos

Nombre Description
SerializeObjectState

Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a