HttpRequestValidationException Klas

Definitie

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 HRESULT fout weergegeven.

(Overgenomen van ExternalException)
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)

Van toepassing op