Udostępnij za pośrednictwem


HttpRequestValidationException Klasa

Definicja

Wyjątek zgłaszany podczas odbierania potencjalnie złośliwego ciągu wejściowego od klienta w ramach danych żądania. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia sposób sprawdzania pod kątem złośliwych danych wejściowych użytkownika przy użyciu elementu HttpRequestValidationException.

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

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

Uwagi

Ograniczanie i weryfikowanie danych wejściowych użytkownika jest niezbędne w aplikacji internetowej, aby zapobiec atakom hakerów, które polegają na złośliwych ciągach wejściowych. Ataki skryptowe obejmujące wiele witryn to jeden z przykładów takich ataków hakerskich. Inne typy złośliwych lub niepożądanych danych mogą być przekazywane w żądaniu za pośrednictwem różnych form danych wejściowych. Ograniczając rodzaje danych przekazywanych na niskim poziomie w aplikacji, można zapobiec niepożądanym zdarzeń, nawet jeśli programiści używający kodu nie umieszczają odpowiednich technik walidacji.

Walidacja żądania wykrywa potencjalnie złośliwe dane wejściowe klienta i zgłasza ten wyjątek w celu przerwania przetwarzania żądania. Przerwanie żądania może wskazywać na próbę naruszenia zabezpieczeń aplikacji, takich jak atak skryptowy między witrynami. Zdecydowanie zaleca się, aby aplikacja jawnie sprawdziła wszystkie dane wejściowe dotyczące przerwania żądania. Można jednak wyłączyć walidację validateRequest żądania, ustawiając atrybut w @ Page dyrektywie na false, jak pokazano w poniższym przykładzie:

<%@ Page validateRequest="false" %>

Aby wyłączyć walidację żądania dla aplikacji, należy zmodyfikować lub utworzyć plik Web.config dla aplikacji i ustawić validateRequest atrybut pages sekcji na false, jak pokazano w poniższym przykładzie:

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

Aby wyłączyć walidację żądania dla wszystkich aplikacji na serwerze, możesz wprowadzić tę modyfikację do pliku Machine.config.

Uwaga

Zdecydowanie zaleca się jawne sprawdzenie wszystkich danych wejściowych używanych przez aplikację oprócz weryfikacji żądania wykonywanej przez ASP.NET. Funkcja sprawdzania poprawności żądania nie może przechwycić wszystkich ataków, zwłaszcza tych, które zostały spreparowane specjalnie na logikę aplikacji.

Konstruktory

HttpRequestValidationException()

Tworzy nowe wystąpienie klasy HttpRequestValidationException.

HttpRequestValidationException(String)

Tworzy nowy HttpRequestValidationException wyjątek z określonym komunikatem o błędzie.

HttpRequestValidationException(String, Exception)

Inicjuje nowe wystąpienie HttpRequestValidationException klasy z określonym komunikatem o błędzie i odwołaniem do wyjątku wewnętrznego, który jest przyczyną wyjątku.

Właściwości

Data

Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.

(Odziedziczone po Exception)
ErrorCode

HRESULT Pobiera błąd.

(Odziedziczone po ExternalException)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku.

(Odziedziczone po Exception)
InnerException

Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek.

(Odziedziczone po Exception)
Message

Pobiera komunikat opisujący bieżący wyjątek.

(Odziedziczone po Exception)
Source

Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd.

(Odziedziczone po Exception)
StackTrace

Pobiera reprezentację ciągu natychmiastowych ramek w stosie wywołań.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.

(Odziedziczone po Exception)
WebEventCode

Pobiera kody zdarzeń skojarzone z wyjątkiem HTTP.

(Odziedziczone po HttpException)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBaseException()

Po przesłonięciu w klasie pochodnej funkcja zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetHtmlErrorMessage()

Pobiera komunikat o błędzie HTML, aby powrócić do klienta.

(Odziedziczone po HttpException)
GetHttpCode()

Pobiera kod stanu odpowiedzi HTTP, aby powrócić do klienta.

(Odziedziczone po HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Pobiera informacje o wyjątku i dodaje go do SerializationInfo obiektu .

(Odziedziczone po HttpException)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg zawierający wartość HRESULT błędu.

(Odziedziczone po ExternalException)

Zdarzenia

SerializeObjectState
Nieaktualne.

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane o wyjątku.

(Odziedziczone po Exception)

Dotyczy