Sdílet prostřednictvím


HttpRequestValidationException Třída

Definice

Výjimka, která je vyvolán při přijetí potenciálně škodlivého vstupního řetězce od klienta jako součást dat žádosti. 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 vstup uživatele se zlými úmysly pomocí HttpRequestValidationException.

Důležité

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 uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete 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í vstupu uživatele je ve webové aplikaci nezbytné, aby se zabránilo útokům hackerů, které jsou závislé na škodlivých vstupních řetězcích. Útoky skriptování mezi weby jsou jedním z příkladů takových hacků. Jiné typy škodlivých nebo nežádoucích dat je možné v požadavku předávat prostřednictvím různých forem vstupu. Omezením typů dat, která se v aplikaci předávají na nízké úrovni, můžete zabránit nežádoucím událostem, a to i v případě, že programátoři, kteří používají váš kód, nezavedou správné ověřovací techniky.

Ověření požadavku zjistí potenciálně škodlivý vstup klienta a vyvolá tuto výjimku k 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 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 atributu validateRequest v direktivě @ Page na falsehodnotu , jak je znázorněno v následujícím příkladu:

<%@ Page validateRequest="false" %>

Pokud chcete pro aplikaci zakázat ověření požadavku, musíte pro aplikaci upravit nebo vytvořit soubor Web.config a nastavit validateRequest atribut oddílu pages na falsehodnotu , 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í požadavků pro všechny aplikace na vašem serveru, můžete tuto úpravu Machine.config souboru.

Poznámka

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 aplikace.

Konstruktory

HttpRequestValidationException()

Vytvoří novou instanci třídy HttpRequestValidationException.

HttpRequestValidationException(String)

Vytvoří novou HttpRequestValidationException výjimku se zadanou chybovou zprávou.

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.

Vlastnosti

Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce.

(Zděděno od Exception)
ErrorCode

HRESULT Získá chybu.

(Zděděno od ExternalException)
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ězcovou reprezentaci 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í, které jsou přidruženy k výjimce HTTP.

(Zděděno od HttpException)

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception hodnotu, která je původní příčinou jedné nebo více následných výjimek.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetHtmlErrorMessage()

Získá chybovou zprávu HTML vrátit do klienta.

(Zděděno od HttpException)
GetHttpCode()

Získá stavový kód odpovědi HTTP, který se vrátí do klienta.

(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 Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který obsahuje hodnotu HRESULT chyby.

(Zděděno od ExternalException)

Událost

SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro