HttpRequestValidationException Sınıf

Tanım

İstek verilerinin bir parçası olarak istemciden kötü amaçlı olabilecek bir giriş dizesi alındığında oluşan özel durum. Bu sınıf devralınamaz.

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
Devralma
Öznitelikler

Örnekler

Aşağıdaki kod örneği, kullanarak HttpRequestValidationExceptionkötü amaçlı kullanıcı girişini denetlemeyi gösterir.

Important

Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.

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

Açıklamalar

Kötü amaçlı giriş dizelerine dayanan bilgisayar korsanı saldırılarını önlemek için bir Web uygulamasında kullanıcı girişini kısıtlamak ve doğrulamak çok önemlidir. Siteler arası betik saldırıları bu tür hack'lere örnek olarak verilmiştir. Bir istekte çeşitli giriş biçimleri aracılığıyla diğer kötü amaçlı veya istenmeyen veri türleri geçirilebilir. Bir uygulamada düşük düzeyde geçirilen veri türlerini sınırlayarak, kodunuzu kullanan programcılar uygun doğrulama tekniklerini yerine getirmese bile istenmeyen olayları önleyebilirsiniz.

İstek doğrulama, kötü amaçlı olabilecek istemci girişini algılar ve isteğin işlenmesini durdurmak için bu özel durumu oluşturur. İstek iptali, siteler arası betik saldırısı gibi uygulamanızın güvenliğini tehlikeye atma girişimini gösterebilir. Uygulamanızın istek durdurmalarıyla ilgili tüm girişleri açıkça denetlemesi kesinlikle önerilir. Ancak, aşağıdaki örnekte gösterildiği gibi yönergesindeki validateRequest özniteliğini olarak @ Pageayarlayarak false istek doğrulamasını devre dışı bırakabilirsiniz:

<%@ Page validateRequest="false" %>

Uygulamanızın istek doğrulamasını devre dışı bırakmak için, uygulamanız için bir Web.config dosyası değiştirmeniz veya oluşturmanız ve aşağıdaki örnekte gösterildiği gibi bölümünün validateRequestözniteliğini pages olarak ayarlamanız false gerekir:

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

Sunucunuzdaki tüm uygulamalarda istek doğrulamasını devre dışı bırakmak için Machine.config dosyasında bu değişikliği yapabilirsiniz.

Note

Uygulamanızın, ASP.NET tarafından gerçekleştirilen istek doğrulamasına ek olarak kullandığı tüm girişleri açıkça denetlemesi kesinlikle önerilir. İstek doğrulama özelliği, özellikle uygulama mantığınıza özel olarak hazırlanmış olan tüm saldırıları yakalayamaz.

Oluşturucular

Name Description
HttpRequestValidationException()

sınıfının yeni bir örneğini HttpRequestValidationException oluşturur.

HttpRequestValidationException(String, Exception)

Sınıfın HttpRequestValidationException yeni bir örneğini belirtilen bir hata iletisiyle ve özel durumun nedeni olan iç özel duruma başvuruyla başlatır.

HttpRequestValidationException(String)

Belirtilen hata iletisiyle yeni HttpRequestValidationException bir özel durum oluşturur.

Özellikler

Name Description
Data

Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan anahtar/değer çiftleri koleksiyonunu alır.

(Devralındığı yer: Exception)
ErrorCode

Hatanın HRESULT alır.

(Devralındığı yer: ExternalException)
HelpLink

Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar.

(Devralındığı yer: Exception)
HResult

Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar.

(Devralındığı yer: Exception)
InnerException

Geçerli özel duruma neden olan Exception örneğini alır.

(Devralındığı yer: Exception)
Message

Geçerli özel durumu açıklayan bir ileti alır.

(Devralındığı yer: Exception)
Source

Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar.

(Devralındığı yer: Exception)
StackTrace

Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır.

(Devralındığı yer: Exception)
TargetSite

Geçerli özel durumu oluşturan yöntemini alır.

(Devralındığı yer: Exception)
WebEventCode

HTTP özel durumuyla ilişkili olay kodlarını alır.

(Devralındığı yer: HttpException)

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBaseException()

Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan Exception döndürür.

(Devralındığı yer: Exception)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetHtmlErrorMessage()

İstemciye dönmek için HTML hata iletisini alır.

(Devralındığı yer: HttpException)
GetHttpCode()

İstemciye dönmek için HTTP yanıt durumu kodunu alır.

(Devralındığı yer: HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Özel durum hakkındaki bilgileri alır ve nesnesine SerializationInfo ekler.

(Devralındığı yer: HttpException)
GetType()

Geçerli örneğin çalışma zamanı türünü alır.

(Devralındığı yer: Exception)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Hatanın HRESULT değerini içeren bir dize döndürür.

(Devralındığı yer: ExternalException)

Ekinlikler

Name Description
SerializeObjectState
Geçersiz.

Özel durum hakkında serileştirilmiş veriler içeren bir özel durum durumu nesnesi oluşturmak için bir özel durum seri hale getirildiğinde gerçekleşir.

(Devralındığı yer: Exception)

Şunlara uygulanır