ASP.NET'te kurallı kullanım sorunlarını denetlemeye yönelik HTTP modülü

Makale çevirileri Makale çevirileri
Makale numarası: 887289 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

Microsoft, müşterilerin ASP.NET uygulamalarını korumalarına yardımcı olmak için en iyi kurallı kullanım yöntemlerini uygulayan bir HTTP modülünü kullanıma sunmuştur. Ek bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
887459 ASP.NET'te kurallı kullanım sorunlarını programla denetleme
ASP.NET sürümünü belirleme hakkında daha fazla bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
318785 .NET Framework üzerine hizmet paketlerinin yüklenip yüklenmediğini belirleme (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)

Belirtiler

Web sunucusu bir URL aldığında, istek sunucu tarafından yanıtı belirleyen bir dosya sistemi yoluna eşlenir. İ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. İşlenmeyen kurallı kullanım sorunları beklenmeyen sonuçlara yol açabilir. Kurallı kullanım hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Çözüm

Microsoft.Web.ValidatePathModule.dll - HTTP modülü

Karşıdan yükleme bilgileri

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:

Bu resmi kapatBu resmi aç
Yükle
VPModule.msi paketini şimdi karşıdan yükle.

Yayın Tarihi: 7 Ekim 2004

Microsoft Destek dosyalarını karşıdan yükleme konusunda daha fazla bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591 Microsoft destek dosyaları çevrimiçi hizmetlerden nasıl alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, dosyada herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Önkoşullar

VPModule.msi dosyası 32 bit Microsoft .NET Framework için tasarlanmıştır.

VPModule.msi dosyasını yüklemeden önce Machine.config dosyasının bilgisayarınızda bulunan tüm kopyalarını yedekleyin. Machine.config dosyasının yedek kopyasını oluşturmak için aşağıdaki adımları izleyin:
  1. Başlat'ı, Çalıştır'ı tıklatın, cmd yazın ve sonra Tamam'ı tıklatın.
  2. Machine.config dosyasının tüm sürümlerini bulun. Machine.config dosyası veya dosyaları aşağıdaki klasörde bulunur, buradaki <framework sürüm numarası> yüklediğiniz Microsoft .NET Framework sürümüdür:
    %windir%\Microsoft.NET\Framework\<framework sürüm numarası>\CONFIG
    Örneğin, C sürücüsüne .NET Framework 1.1 yüklüyse, aşağıdaki komutu yazın ve ENTER tuşuna basın:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Machine.config dosyasının yedek kopyasını oluşturmak için aşağıdaki komutu yazın ve ENTER tuşuna basın:
    copy machine.config machine.config.bak
Sisteminize yüklü her .NET Framework kopyası için bu adımları yineleyin.

Yükleme bilgileri

Microsoft, VPModule.msi adında bir yükleme paketi sağlamıştır. VPModule.msi dosyası, Microsoft.Web.ValidatePathModule.dll dosyasını sisteminize yükler. Yükleme işlemi, yüklü tüm .NET Framework sürümlerinde Machine.config dosyasını (veya dosyalarını) yeni HTTP modülü girdisiyle güncelleştirir.

Yükleme paketini kullanmak için VPModule.msi dosyasını karşıdan yükleyin, yükleme işlemini başlatmak üzere paketi çift tıklatın ve yükleme yönergelerini uygulayın.

VPModule.msi ne yapar

Yükleme uygulaması öncelikle Microsoft.Web.ValidatePathModule.dll adındaki dosyayı ayıklar. Sonra sistemde bulunan tüm Machine.config dosyalarını güncelleştirerek dosyalarda aşağıdakine benzer şekilde görünen bir girdi olmasını sağlar:
     <system.web> 
         <httpModules> 
           <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/> 
         </httpModules> 
     </system.web>
Yükleme uygulaması daha sonra Microsoft.Web.ValidatePathModule.dll dosyasını Genel Derleme Önbelleği'ne (GAC - Global Assembly Cache ) ekler.

Microsoft.Web.ValidatePathModule.dll dosyasının program yoluyla ne yaptığını öğrenmek isteyen kod geliştiriciler için kaynak kodu aşağıda verilmiştir:
namespace Microsoft.Web { 
    public class ValidatePathModule : IHttpModule { 
        public ValidatePathModule() { 
        } 
        void IHttpModule.Init(HttpApplication app) { 
            app.BeginRequest += new EventHandler(this.OnBeginRequest); 
        } 
        void IHttpModule.Dispose() { 
        } 
        void OnBeginRequest(Object source, EventArgs eventArgs) { 
             HttpRequest request = (source as HttpApplication).Request; 
             string physicalPath = request.PhysicalPath; 
             if (request.Path.IndexOf('\\') >= 0 || Path.GetFullPath(physicalPath) != physicalPath) { 
                 throw new HttpException(404, "Not Found"); 
             } 
         } 
     } 
}
Modülü yüklemek için kullanabileceğiniz komut satırı anahtarları hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Yükleme doğrulama bilgileri

Modül düzgün bir şekilde yüklendiğinde, sistemde aşağıdaki kayıt defteri anahtarı bulunur:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Not HTTP modülünü "Özel yükleme bilgileri" bölümünde anlatıldığı şekilde el ile yüklerseniz bu kayıt defteri anahtarı sistemde bulunmaz. /a seçeneği yalnızca dosyaları ayıklar. Kayıt defterini güncelleştirmez.

Kaldırma bilgileri

Bu değişiklikleri kaldırmak için VPModule.msi dosyasını çalıştırın ve Kaldır seçeneğini belirleyin. Diğer bir seçenek de, Denetim Masası'ndaki Program Ekle/Kaldır seçeneğini kullanmaktır.

Katılımsız mod bilgileri

Bu değişiklikleri katılımsız modda yüklemek için aşağıdaki komutu kullanın:
msiexec /i vpmodule.msi /qb-
Bu değişiklikleri katılımsız modda kaldırmak için aşağıdaki komutu kullanın:
msiexec /x vpmodule.msi /qb-

Özel yükleme bilgileri

HTTP modülünü el ile yüklemek için aşağıdaki adımları uygulayın:
  1. Machine.config dosyanızı veya dosyalarınızı yedekleyin. Bunu nasıl yapacağınız hakkında daha fazla bilgi için "Önkoşullar" bölümüne bakın.
  2. Paketi karşıdan yükleyin. Bunu nasıl yapacağınız hakkında daha fazla bilgi için "Karşıdan yükleme bilgileri" bölümüne bakın.
  3. Microsoft.Web.ValidatePathModule.dll dosyasını VPModule.msi dosyasından ayıklayarak istediğiniz konuma yerleştirmek için aşağıdaki komutu kullanın:
    msiexec /a vpmodule.msi
  4. Modülü GAC'ye kopyalamak için aşağıdaki komutu kullanın:
    gacutil -i microsoft.web.validatepathmodule.dll
    Not Modül, belirttiğiniz konumun altında bulunan "Microsoft ValidatePath Module" adındaki bir klasöre ayıklanır.
  5. Aşağıdaki girdiyi <httpModules> bölümüne eklemek için Machine.config dosyasını veya dosyalarını düzenleyin:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>

Bilinen sorunlar

Aşağıdakiler bilinen sorunlardır:
  • Yükleme uygulaması, Microsoft.Web.ValidatePathModule.dll dosyası için Machine.config dosyası veya dosyalarının <httpModule> girdisiyle başarılı bir şekilde güncelleştirildiğinden emin olmalıdır. Ancak bazı durumlarda, bu, anlatılan davranışın oluşmasını engellemeyebilir.

    Bu davranış bir Web.config dosyası varsa ve Web.config dosyası Machine.config düzeyinde tanımlanan listeyi temizlerse oluşabilir. Örneğin, Web.config dosyasında aşağıdakine benzer bir girdi bulunması bu davranışa neden olabilir:
    <httpModules> 
        <clear/> 
    </httpModules>
    Bu yapılandırma, azaltma modülünün bu uygulamada yürütülmesini engeller. Bu yapılandırma genellikle bir uygulama Machine.config düzeyinde tanımlanan HTTP modüllerini kullanmak istemeyip bunun yerine listeyi temizleyerek geçerli uygulamaya özgü yeni bir liste tanımlamak istediğinde oluşur.
  • .NET Framework'ün farklı bir sürümünü yüklerseniz, VPModule.msi dosyasını kaldırmanız ve yeniden yüklemeniz gerekir.
  • SQL Server Raporlama Hizmetleri ve VPModule.msi hakkında daha fazla bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    887787 ASP.NET ValidatePath Modülü'nü yükledikten sonra Raporlama Hizmetleri'nden hata iletileri alabilirsiniz (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)

Referanslar

Daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
887405 Windows Installer ve Grup İlkesi, VPModule.msi uygulamasını bir Active Directory etki alanında dağıtmak üzere nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
Daha fazla bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
887404 ValidatePath modülünü dağıtmak için Systems Management Server 2003 nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
Daha fazla bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
887290 ASP.NET ValidatePath Modül Tarayıcı (VPModuleScanner.js) nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
Oturum durumları hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Özellikler

Makale numarası: 887289 - Last Review: 3 Aralık 2007 Pazartesi - Gözden geçirme: 3.8
Bu makaledeki bilginin uygulandığı durum:
  • 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
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
Anahtar Kelimeler: 
kbsecurity kbtshoot KB887289

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com