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.
İ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 |
| 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) |