HttpRequestValidationException Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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 |
| 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) |