HttpRequestValidationException Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Eccezione generata quando una stringa di input potenzialmente dannosa viene ricevuta dal client come parte dei dati della richiesta. La classe non può essere ereditata.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come verificare la presenza di input di utenti malintenzionati tramite .HttpRequestValidationException
Importante
In questo esempio è presente una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza. Per impostazione predefinita, ASP.NET pagine Web verificare che l'input dell'utente non includa elementi SCRIPT o HTML. Per altre informazioni, vedere Cenni preliminari sugli exploit di 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>
Commenti
Vincolare e convalidare l'input dell'utente è essenziale in un'applicazione Web per impedire attacchi hacker che si basano su stringhe di input dannose. Gli attacchi di scripting tra siti sono un esempio di attacchi di questo tipo. Altri tipi di dati dannosi o indesiderati possono essere passati in una richiesta tramite varie forme di input. Limitando i tipi di dati passati a un livello basso in un'applicazione, è possibile evitare eventi indesiderati, anche quando i programmatori che usano il codice non inseriscono le tecniche di convalida appropriate.
La convalida delle richieste rileva un input client potenzialmente dannoso e genera questa eccezione per interrompere l'elaborazione della richiesta. Un'interruzione di una richiesta può indicare un tentativo di compromettere la sicurezza dell'applicazione, ad esempio un attacco di scripting intersito. È consigliabile che l'applicazione controlli in modo esplicito tutti gli input relativi all'interruzione della richiesta. Tuttavia, è possibile disabilitare la convalida delle richieste impostando l'attributo validateRequest nella @ Page direttiva su false, come illustrato nell'esempio seguente:
<%@ Page validateRequest="false" %>
Per disabilitare la convalida delle richieste per l'applicazione, è necessario modificare o creare un file Web.config per l'applicazione pages e impostare l'attributo validateRequest della sezione su false, come illustrato nell'esempio seguente:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Per disabilitare la convalida delle richieste per tutte le applicazioni nel server, è possibile apportare questa modifica al file Machine.config.
Note
È consigliabile che l'applicazione controlli in modo esplicito tutti gli input usati oltre alla convalida della richiesta eseguita da ASP.NET. La funzionalità di convalida delle richieste non può intercettare tutti gli attacchi, in particolare quelli creati in modo specifico rispetto alla logica dell'applicazione.
Costruttori
| Nome | Descrizione |
|---|---|
| HttpRequestValidationException() |
Crea una nuova istanza della HttpRequestValidationException classe . |
| HttpRequestValidationException(String, Exception) |
Inizializza una nuova istanza della HttpRequestValidationException classe con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione. |
| HttpRequestValidationException(String) |
Crea una nuova HttpRequestValidationException eccezione con il messaggio di errore specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Data |
Ottiene una raccolta di coppie chiave/valore che forniscono informazioni aggiuntive definite dall'utente sull'eccezione. (Ereditato da Exception) |
| ErrorCode |
Ottiene l'oggetto |
| HelpLink |
Ottiene o imposta un collegamento al file della Guida associato a questa eccezione. (Ereditato da Exception) |
| HResult |
Ottiene o imposta HRESULT, valore numerico codificato assegnato a un'eccezione specifica. (Ereditato da Exception) |
| InnerException |
Ottiene l'istanza Exception che ha causato l'eccezione corrente. (Ereditato da Exception) |
| Message |
Ottiene un messaggio che descrive l'eccezione corrente. (Ereditato da Exception) |
| Source |
Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore. (Ereditato da Exception) |
| StackTrace |
Ottiene una rappresentazione di stringa dei fotogrammi immediati nello stack di chiamate. (Ereditato da Exception) |
| TargetSite |
Ottiene il metodo che genera l'eccezione corrente. (Ereditato da Exception) |
| WebEventCode |
Ottiene i codici evento associati all'eccezione HTTP. (Ereditato da HttpException) |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetBaseException() |
Quando sottoposto a override in una classe derivata, restituisce l'oggetto Exception che rappresenta la causa radice di una o più eccezioni successive. (Ereditato da Exception) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetHtmlErrorMessage() |
Ottiene il messaggio di errore HTML da restituire al client. (Ereditato da HttpException) |
| GetHttpCode() |
Ottiene il codice di stato della risposta HTTP da restituire al client. (Ereditato da HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Ottiene informazioni sull'eccezione e la aggiunge all'oggetto SerializationInfo . (Ereditato da HttpException) |
| GetType() |
Ottiene il tipo di runtime dell'istanza corrente. (Ereditato da Exception) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che contiene il valore HRESULT dell'errore. (Ereditato da ExternalException) |
Eventi
| Nome | Descrizione |
|---|---|
| SerializeObjectState |
Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione. (Ereditato da Exception) |