HttpRequestValidationException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Výjimka, která se vyvolá při přijetí potenciálně škodlivého vstupního řetězce z klienta jako součást dat požadavku. Tato třída se nemůže dědit.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje, jak zkontrolovat škodlivý vstup uživatele pomocí HttpRequestValidationException.
Important
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete v tématu Přehled zneužití skriptů.
<%@ 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>
Poznámky
Omezení a ověřování uživatelského vstupu je nezbytné ve webové aplikaci, aby se zabránilo útokům hackerů, které spoléhají na škodlivé vstupní řetězce. Jedním z příkladů takových hacků jsou útoky skriptování mezi weby. Jiné typy škodlivých nebo nežádoucích dat je možné předat v požadavku prostřednictvím různých forem vstupu. Omezením typů dat předávaných na nízké úrovni v aplikaci můžete zabránit nežádoucím událostem, i když programátoři, kteří používají váš kód, nenastavují správné ověřovací techniky.
Ověření požadavku detekuje potenciálně škodlivý vstup klienta a vyvolá tuto výjimku při přerušení zpracování požadavku. Přerušení požadavku může znamenat pokus o ohrožení zabezpečení vaší aplikace, například útok skriptování mezi weby. Důrazně doporučujeme, aby vaše aplikace explicitně zkontrolovala všechny vstupy týkající se přerušení požadavků. Ověření požadavku však můžete zakázat nastavením validateRequest atributu v direktivě @ Page na false, jak je znázorněno v následujícím příkladu:
<%@ Page validateRequest="false" %>
Pokud chcete zakázat ověřování požadavků pro aplikaci, musíte upravit nebo vytvořit soubor Web.config pro aplikaci a nastavit validateRequest atribut oddílu pages na false, jak je znázorněno v následujícím příkladu:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Pokud chcete zakázat ověřování žádostí pro všechny aplikace na vašem serveru, můžete tuto změnu provést v souboru Machine.config.
Note
Důrazně doporučujeme, aby vaše aplikace explicitně zkontrolovala všechny vstupy, které používá, kromě ověření požadavku prováděného ASP.NET. Funkce ověření požadavku nemůže zachytit všechny útoky, zejména ty vytvořené speciálně proti logice vaší aplikace.
Konstruktory
| Name | Description |
|---|---|
| HttpRequestValidationException() |
Vytvoří novou instanci HttpRequestValidationException třídy. |
| HttpRequestValidationException(String, Exception) |
Inicializuje novou instanci HttpRequestValidationException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou výjimky. |
| HttpRequestValidationException(String) |
Vytvoří novou HttpRequestValidationException výjimku se zadanou chybovou zprávou. |
Vlastnosti
| Name | Description |
|---|---|
| Data |
Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce. (Zděděno od Exception) |
| ErrorCode |
|
| HelpLink |
Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce. (Zděděno od Exception) |
| HResult |
Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce. (Zděděno od Exception) |
| InnerException |
Exception Získá instanci, která způsobila aktuální výjimku. (Zděděno od Exception) |
| Message |
Získá zprávu, která popisuje aktuální výjimku. (Zděděno od Exception) |
| Source |
Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu. (Zděděno od Exception) |
| StackTrace |
Získá řetězcové znázornění okamžitých rámců v zásobníku volání. (Zděděno od Exception) |
| TargetSite |
Získá metodu, která vyvolá aktuální výjimku. (Zděděno od Exception) |
| WebEventCode |
Získá kódy událostí přidružené k výjimce HTTP. (Zděděno od HttpException) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetBaseException() |
Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek. (Zděděno od Exception) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetHtmlErrorMessage() |
Získá chybovou zprávu HTML pro návrat do klienta. (Zděděno od HttpException) |
| GetHttpCode() |
Získá stavový kód odpovědi HTTP, který se vrátí klientovi. (Zděděno od HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Získá informace o výjimce a přidá ji do objektu SerializationInfo . (Zděděno od HttpException) |
| GetType() |
Získá typ modulu runtime aktuální instance. (Zděděno od Exception) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který obsahuje HRESULT chyby. (Zděděno od ExternalException) |
Událost
| Name | Description |
|---|---|
| SerializeObjectState |
Zastaralé.
Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce. (Zděděno od Exception) |