Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

ASP.NET'te kurallı kullanım sorunlarını programla sınama

GİRİŞ
Bu makalede, sık karşılaşılan kurallı kullanım sorunlarından korunmak için bir ASP.NET uygulamasına nasıl koruma ekleneceği anlatılmaktadır.
Daha fazla bilgi

Kurallı kullanım nedir?

Kurallı kullanım, bir adın çeşitli eşdeğer biçimlerinin tek bir standart ad olarak çözümlenmesini sağlayan işlemdir. Tek bir standart ad kurallı ad olarak da bilinir. Örneğin, belirli bir bilgisayarda c:\dizin\test.dat, test.dat ve ..\..\test.dat adlarının tümü aynı dosyayı gösterebilir. Kurallı kullanım, bu gibi adları c:\dizin\test.dat adına benzer bir ada eşleyen işlemdir.

URL Web sunucusu tarafından alındığında, sunucu bu isteği yanıtı belirleyen bir dosya sistemi yoluna eşler. İsteği eşlemek için kullanılan kurallı duruma getirme yordamı, beklenmeyen bir içerik sunmamak ve işlememek için URL'yi doğru şekilde ayrıştırmalıdır. Kurallı kullanım hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin: Uygulamalarınızı korumak için en iyi uygulamaları kullanmanızı öneririz. Ek bilgi için aşağıdaki bölüme bakın.

Web uygulamanıza ek kurallı kullanım korumaları ekleme

Microsoft ASP.NET geliştiricileri, bir Web uygulamasındaki kurallı kullanım sorunlarını azaltmaya yardımcı olması için Web uygulamasının kök dizininde depolanan Global.asax dosyasına bir Application_BeginRequest olay işleyicisi ekleyerek daha fazla denetim kullanabilir. Bu olay işleyicisi her Web isteği için yürütülür. Kurallı kullanım sorunlarına karşı koruma sağlamaya yardımcı olmak için bu olay işleyicisine kod ekleyebilirsiniz.

Kod örneği

Aşağıdaki kod örnekleri bir Global.asax dosyasına nasıl Application_BeginRequest olay işleyicisi ekleneceğini göstermektedir. Bu olay işleyicisi, yol doğrulamaları uygulayarak geçersiz karakterlerin ve hatalı biçimlendirilmiş URL'lerin engellenmesine yardımcı olur. Böylece sık karşılaşılan kurallı kullanım sorunlarından kaçınabilirsiniz.

Global.asax kod örneği (Visual Basic .NET)

<script language="vb" runat="server"> Sub Application_BeginRequest(Sender as Object, E as EventArgs)     If (Request.Path.IndexOf(chr(92)) >= 0 OR _         System.IO.Path.GetFullPath(Request.PhysicalPath) <> Request.PhysicalPath) then         Throw New HttpException(404, "Bulunamadı")     End If End Sub </script>

Global.asax kod örneği (C#)

<script language="C#" runat="server"> void Application_BeginRequest(object source, EventArgs e) {     if (Request.Path.IndexOf('\\') >= 0 ||         System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) {         throw new HttpException(404, "bulunamadı");     } } </script>

Vazgeçme Belgesi

Microsoft Knowledge Base'deki bilgiler hiçbir garanti verilmeden "olduğu gibi" sağlanır. Ticari olarak satılabilirlik ve belirli bir amaca uygunluk da dahil olmak üzere doğrudan ya da dolaylı hiçbir garanti verilmemektedir. Microsoft Corporation veya tedarikçileri, bu gibi zararlar olabileceği Microsoft Corporation veya tedarikçilerine önceden bildirilmiş olsa dahi, doğrudan, dolaylı, arızi, neticede oluşan, gelir kaybına neden olan ya da özel hiçbir hasar için sorumlu tutulamaz. Bazı bölgelerde, neticede oluşan ya da kaza sonucu oluşan hasarların kapsam dışında tutulmasına ya da kısıtlanmasına izin verilmez. Bu nedenle bu kısıtlamalar uygulanmayabilir.
Özellikler

Makale No: 887459 - Son İnceleme: 12/03/2007 18:52:47 - Düzeltme: 2.5

Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.0 Service Pack 1, Microsoft .NET Framework 1.0 Service Pack 2, Microsoft .NET Framework 1.0 Service Pack 3, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.1 Service Pack 1

  • kbsecurity kbtshoot KB887459
Geri bildirim