HttpRequestValidationException Osztály

Definíció

Az a kivétel, amely akkor jelentkezik, ha egy potenciálisan rosszindulatú bemeneti sztring érkezik az ügyféltől a kérelemadatok részeként. Ez az osztály nem örökölhető.

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
Öröklődés
Attribútumok

Példák

Az alábbi példakód bemutatja, hogyan ellenőrizheti a rosszindulatú felhasználói bemeneteket egy HttpRequestValidationException.

Important

Ebben a példában egy szövegdoboz található, amely elfogadja a felhasználói bemenetet, ami potenciális biztonsági fenyegetés. Alapértelmezés szerint ASP.NET weblapok ellenőrzik, hogy a felhasználói bevitel nem tartalmaz-e szkript- vagy HTML-elemeket. További információ: Szkript kihasználása – áttekintés.

<%@ 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>

Megjegyzések

A felhasználói bevitel korlátozása és érvényesítése elengedhetetlen a webalkalmazásokban a rosszindulatú bemeneti sztringekre támaszkodó hackertámadások megakadályozása érdekében. A helyek közötti szkriptelési támadások az ilyen hackek egyik példája. Más típusú rosszindulatú vagy nem kívánt adatok különböző beviteli módokon keresztül továbbíthatók a kérésekben. Az alkalmazásokban alacsony szinten átadott adattípusok korlátozásával megakadályozhatja a nemkívánatos eseményeket, még akkor is, ha a kódot használó programozók nem használják a megfelelő érvényesítési technikákat.

A kérés érvényesítése észleli a potenciálisan rosszindulatú ügyfélbemenetet, és ezt a kivételt a kérés feldolgozásának megszakítása érdekében okozza. A kérelem megszakítása azt jelezheti, hogy az alkalmazás biztonsága sérül, például egy helyek közötti szkriptelési támadás. Erősen ajánlott, hogy az alkalmazás kifejezetten ellenőrizze a kérelmek megszakításával kapcsolatos összes bemenetet. A kérések érvényesítését azonban letilthatja úgy, hogy az validateRequest@ Page irányelv attribútumát a következő példában láthatóra falseállítja:

<%@ Page validateRequest="false" %>

Az alkalmazás kérésérvényesítésének letiltásához módosítania vagy létre kell hoznia egy Web.config fájlt az alkalmazáshoz, és be kell állítania a validateRequestpages szakasz falseattribútumát az alábbi példában látható módon:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

Ha le szeretné tiltani a kérésérvényesítést a kiszolgálón található összes alkalmazás esetében, ezt a módosítást elvégezheti a Machine.config fájlon.

Note

Erősen ajánlott, hogy az alkalmazás kifejezetten ellenőrizze az összes bemenetet, amelyet a ASP.NET által végrehajtott kérésérvényesítés mellett használ. A kérésérvényesítési funkció nem képes minden támadást elkapni, különösen azokat, amelyeket kifejezetten az alkalmazáslogika ellen készítettek.

Konstruktorok

Name Description
HttpRequestValidationException()

Létrehozza az osztály új példányát HttpRequestValidationException .

HttpRequestValidationException(String, Exception)

Inicializálja az HttpRequestValidationException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással.

HttpRequestValidationException(String)

Új kivételt HttpRequestValidationException hoz létre a megadott hibaüzenettel.

Tulajdonságok

Name Description
Data

Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről.

(Öröklődés forrása Exception)
ErrorCode

Lekéri a HRESULT hibát.

(Öröklődés forrása ExternalException)
HelpLink

Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást.

(Öröklődés forrása Exception)
HResult

Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve.

(Öröklődés forrása Exception)
InnerException

Lekéri az Exception aktuális kivételt okozó példányt.

(Öröklődés forrása Exception)
Message

Az aktuális kivételt leíró üzenet jelenik meg.

(Öröklődés forrása Exception)
Source

Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét.

(Öröklődés forrása Exception)
StackTrace

Lekéri a hívásverem közvetlen kereteinek sztringképét.

(Öröklődés forrása Exception)
TargetSite

Lekéri az aktuális kivételt okozó metódust.

(Öröklődés forrása Exception)
WebEventCode

Lekéri a HTTP-kivételhez társított eseménykódokat.

(Öröklődés forrása HttpException)

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetBaseException()

Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza.

(Öröklődés forrása Exception)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetHtmlErrorMessage()

Lekéri a HTML-hibaüzenetet, hogy visszatérjen az ügyfélhez.

(Öröklődés forrása HttpException)
GetHttpCode()

Lekéri a HTTP-válasz állapotkódját, hogy visszatérjen az ügyfélhez.

(Öröklődés forrása HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Információt kap a kivételről, és hozzáadja az SerializationInfo objektumhoz.

(Öröklődés forrása HttpException)
GetType()

Lekéri az aktuális példány futtatókörnyezeti típusát.

(Öröklődés forrása Exception)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

A hiba HRESULT értékét tartalmazó sztringet ad vissza.

(Öröklődés forrása ExternalException)

esemény

Name Description
SerializeObjectState
Elavult.

Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről.

(Öröklődés forrása Exception)

A következőre érvényes: