HttpRequestValidationException Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İ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 false
ayarlayarak 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 |
|
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) |