HttpRequestValidationException Sınıf

Tanım

İstemciden istek verilerinin bir parçası olarak 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.

Önemli

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 korsan saldırılarını önlemek için bir Web uygulamasında kullanıcı girişini kısıtlamak ve doğrulamak önemlidir. Siteler arası betik saldırıları bu tür saldırılara bir örnektir. 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 doğru 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 iptalleriyle ilgili tüm girişleri açıkça denetlemesi kesinlikle önerilir. Ancak, aşağıdaki örnekte gösterildiği gibi yönergesindeki @ Page özniteliğini olarak falseayarlayarak validateRequest 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 falseözniteliğini pages olarak ayarlamanız validateRequest gerekir:

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

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

Not

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ız için özel olarak hazırlanmış olan tüm saldırıları yakalayamaz.

Oluşturucular

HttpRequestValidationException()

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

HttpRequestValidationException(String)

Belirtilen hata iletisiyle yeni HttpRequestValidationException bir özel durum 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.

Özellikler

Data

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

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

HRESULT Hatanın değerini 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'u alır veya ayarlar.

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

Exception Geçerli özel duruma neden olan örneği 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

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 değerini döndürür Exception .

(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 durum 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 Objectöğesinin sığ 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

SerializeObjectState
Geçersiz.

Bir özel durum, özel durum hakkında serileştirilmiş veriler içeren bir özel durum nesnesi oluşturmak üzere seri hale getirildiğinde gerçekleşir.

(Devralındığı yer: Exception)

Şunlara uygulanır