HttpRequestValidationException Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
De uitzondering die wordt gegenereerd wanneer een mogelijk schadelijke invoertekenreeks van de client wordt ontvangen als onderdeel van de aanvraaggegevens. Deze klasse kan niet worden overgenomen.
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
- Overname
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u kunt controleren op schadelijke gebruikersinvoer met behulp van een HttpRequestValidationException.
Important
Dit voorbeeld heeft een tekstvak dat gebruikersinvoer accepteert. Dit is een mogelijke beveiligingsrisico. Standaard valideren ASP.NET webpagina's dat gebruikersinvoer geen script- of HTML-elementen bevat. Zie Overzicht van Script Exploits voor meer informatie.
<%@ 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>
Opmerkingen
Het beperken en valideren van gebruikersinvoer is essentieel in een webtoepassing om hackeraanvallen te voorkomen die afhankelijk zijn van schadelijke invoertekenreeksen. Scriptaanvallen op meerdere sites zijn een voorbeeld van dergelijke hacks. Andere typen schadelijke of ongewenste gegevens kunnen worden doorgegeven in een aanvraag via verschillende vormen van invoer. Door het beperken van de soorten gegevens die op een laag niveau in een toepassing worden doorgegeven, kunt u ongewenste gebeurtenissen voorkomen, zelfs wanneer programmeurs die uw code gebruiken, niet de juiste validatietechnieken gebruiken.
Aanvraagvalidatie detecteert mogelijk schadelijke clientinvoer en genereert deze uitzondering om de verwerking van de aanvraag af te breken. Een aanvraag wordt afgebroken, kan duiden op een poging om de beveiliging van uw toepassing te beschadigen, zoals een aanval op meerdere sites. Het wordt sterk aanbevolen dat uw toepassing expliciet alle invoer met betrekking tot afgebroken aanvragen controleert. U kunt aanvraagvalidatie echter uitschakelen door het validateRequest kenmerk in de @ Page instructie in te falsestellen op, zoals wordt weergegeven in het volgende voorbeeld:
<%@ Page validateRequest="false" %>
Als u aanvraagvalidatie voor uw toepassing wilt uitschakelen, moet u een Web.config-bestand voor uw toepassing wijzigen of maken en het validateRequest kenmerk van de pages sectie falseinstellen op , zoals wordt weergegeven in het volgende voorbeeld:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Als u aanvraagvalidatie wilt uitschakelen voor alle toepassingen op uw server, kunt u deze wijziging aanbrengen in het Machine.config-bestand.
Note
Het wordt sterk aanbevolen dat uw toepassing expliciet alle invoer controleert die wordt gebruikt, naast de aanvraagvalidatie die door ASP.NET wordt uitgevoerd. De functie voor aanvraagvalidatie kan niet alle aanvallen ondervangen, met name aanvallen die speciaal zijn gemaakt voor uw toepassingslogica.
Constructors
| Name | Description |
|---|---|
| HttpRequestValidationException() |
Hiermee maakt u een nieuw exemplaar van de HttpRequestValidationException klasse. |
| HttpRequestValidationException(String, Exception) |
Initialiseert een nieuw exemplaar van de HttpRequestValidationException klasse met een opgegeven foutbericht en een verwijzing naar de binnenste uitzondering die de oorzaak van de uitzondering is. |
| HttpRequestValidationException(String) |
Hiermee maakt u een nieuwe HttpRequestValidationException uitzondering met het opgegeven foutbericht. |
Eigenschappen
| Name | Description |
|---|---|
| Data |
Hiermee haalt u een verzameling sleutel-waardeparen op die aanvullende door de gebruiker gedefinieerde informatie over de uitzondering bieden. (Overgenomen van Exception) |
| ErrorCode |
Hiermee wordt de |
| HelpLink |
Hiermee haalt u een koppeling op naar het Help-bestand dat aan deze uitzondering is gekoppeld. (Overgenomen van Exception) |
| HResult |
Hiermee wordt HRESULT opgehaald of ingesteld, een gecodeerde numerieke waarde die is toegewezen aan een specifieke uitzondering. (Overgenomen van Exception) |
| InnerException |
Hiermee haalt u het Exception exemplaar op dat de huidige uitzondering heeft veroorzaakt. (Overgenomen van Exception) |
| Message |
Hiermee wordt een bericht weergegeven waarin de huidige uitzondering wordt beschreven. (Overgenomen van Exception) |
| Source |
Hiermee wordt de naam van de toepassing of het object dat de fout veroorzaakt, opgehaald of ingesteld. (Overgenomen van Exception) |
| StackTrace |
Hiermee haalt u een tekenreeksweergave van de directe frames op de aanroepstack op. (Overgenomen van Exception) |
| TargetSite |
Hiermee haalt u de methode op waarmee de huidige uitzondering wordt gegenereerd. (Overgenomen van Exception) |
| WebEventCode |
Hiermee haalt u de gebeurteniscodes op die zijn gekoppeld aan de HTTP-uitzondering. (Overgenomen van HttpException) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetBaseException() |
Wanneer deze wordt overschreven in een afgeleide klasse, retourneert u de Exception hoofdoorzaak van een of meer volgende uitzonderingen. (Overgenomen van Exception) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetHtmlErrorMessage() |
Hiermee wordt het HTML-foutbericht geretourneerd om terug te keren naar de client. (Overgenomen van HttpException) |
| GetHttpCode() |
Hiermee haalt u de HTTP-antwoordstatuscode op om terug te keren naar de client. (Overgenomen van HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Haalt informatie over de uitzondering op en voegt deze toe aan het SerializationInfo object. (Overgenomen van HttpException) |
| GetType() |
Hiermee haalt u het runtimetype van het huidige exemplaar op. (Overgenomen van Exception) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het HRESULT van de fout bevat. (Overgenomen van ExternalException) |
gebeurtenis
| Name | Description |
|---|---|
| SerializeObjectState |
Treedt op wanneer een uitzondering wordt geserialiseerd om een uitzonderingsstatusobject te maken dat geserialiseerde gegevens over de uitzondering bevat. (Overgenomen van Exception) |