Comparteix a través de


HttpRequestValidationException Clase

Definición

Excepción que se produce cuando una cadena de entrada potencialmente malintencionada se recibe del cliente como parte de los datos de la 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 datos proporcionados por el usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para más información, consulte Información general sobre los ataques mediante 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>

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 tales 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 en 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 de 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.

Nota

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 contra la lógica de la aplicación.

Constructores

HttpRequestValidationException()

Crea una nueva instancia de la clase HttpRequestValidationException.

HttpRequestValidationException(String)

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

HttpRequestValidationException(String, Exception)

Inicializa una nueva instancia de la clase HttpRequestValidationException con los parámetros especificados: un mensaje de error y una referencia a la excepción interna que es la causa de la excepción.

Propiedades

Data

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

(Heredado de Exception)
ErrorCode

Obtiene el elemento 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 instancia Exception que produjo la excepción actual.

(Heredado de Exception)
Message

Obtiene un mensaje que describe la excepción actual.

(Heredado de Exception)
Source

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.

(Heredado de Exception)
StackTrace

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

(Heredado de Exception)
TargetSite

Obtiene el método que produjo 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

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se invalida en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Sirve 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 objeto SerializationInfo.

(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 Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que contiene el HRESULT del error.

(Heredado de ExternalException)

Eventos

SerializeObjectState
Obsoletos.

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a