HttpRequestValidationException Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 false
en , 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 false
en , 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 |
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) |