HTTP-modul för kontroll av problem i processen för att skapa kanoniska namn i ASP.NET

Artikelöversättning Artikelöversättning
Artikel-id: 887289 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Sammanfattning

För att hjälpa kunderna att skydda sina ASP.NET-program har Microsoft tagit fram en HTTP-modul där rekommenderade åtgärder för att skapa kanoniska namn implementeras. Om du vill veta mer klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
887459 Upptäcka problem i processen för att skapa kanoniska namn i ASP.NET programmatiskt
Om du vill veta mer om hur du tar reda på ASP.NET-versionen klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
318785 Ta reda på om Service Pack-versioner är installerade i .NET Framework

Symptom

När en URL mottas av en webbserver mappas en förfrågan till en filsystemsökväg som bestämmer svaret. När kanoniska namn skapas för att mappa denna förfrågan måste URL:en tolkas korrekt, så att inte fel innehåll behandlas. Obehandlade problem vid skapandet av kanoniska namn kan leda till oväntade resultat. Mer information om processen för att skapa kanoniska namn finns på följande Microsoft-webbplats:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Lösning

Microsoft.Web.ValidatePathModule.dll - HTTP-modul

Information om hämtning

Följande fil kan hämtas från Microsoft Download Center:

Dölj bildenVisa bilden
Hämta
Hämta paketet VPModule.msi nu

Utgivningsdatum: 7 oktober 2004

Om du vill veta mer om hur du hämtar supportfiler från Microsoft klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
119591 Hämta Microsoft-supportfiler från Onlinetjänster
Microsoft har genomsökt denna fil med ett antivirusprogram. Genomsökningen har gjorts med det mest aktuella antivirusprogram som var tillgängligt när filen lades upp. Filen finns sparad på servrar med utökad säkerhet, vilket bidrar till att förhindra otillåtna ändringar av den.

Förutsättningar

Filen VPModule.msi är avsedd för Microsofts 32-bitars .NET Framework.

Innan du installerar VPModule.msi säkerhetskopierar du alla instanser av filen Machine.config på datorn så här:
  1. Klicka på Start, klicka på Kör, skriv cmd och klicka på OK.
  2. Leta upp alla versioner av Machine.config. De finns i följande mapp, där <Framework-versionsnummer> är den installerade versionen av Microsoft .NET Framework:
    %windir%\Microsoft.NET\Framework\<Framework-versionsnummer>\CONFIG
    Om till exempel .NET Framework 1.1 är installerat på enhet C skriver du följande kommando och trycker på RETUR:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Säkerhetskopiera Machine.config genom att skriva följande kommando, och tryck sedan på RETUR:
    copy machine.config machine.config.bak
Upprepa åtgärderna för alla instanser av .NET Framework som är installerade på datorn.

Installationsinformation

Microsoft har släppt ett installationspaket med beteckningen VPModule.msi. Genom filen VPModule.msi installeras Microsoft.Web.ValidatePathModule.dll på datorn. Vid installationen uppdateras alla förekomster av Machine.config med en ny HTTP-modulpost i alla installerade versioner av .NET Framework.

Gör så här: hämta VPModule.msi, börja installationen genom att dubbelklicka på paketet och följ sedan instruktionerna.

Detta händer vid installation av VPModule.msi

Genom installationsprogrammet extraheras först filen Microsoft.Web.ValidatePathModule.dll. Sedan uppdateras alla Machine.config-filer på datorn med en post av följande slag:
    <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>
Sedan läggs filen Microsoft.Web.ValidatePathModule.dll till i den globala sammansättningscachen (GAC).

För utvecklare som vill förstå de programmässiga funktionerna hos filen Microsoft.Web.ValidatePathModule.dll visas källkoden nedan:
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");
            }
        }
    }
}
Information om kommandoradsväxlar som kan användas för att installera modulen finns på följande Microsoft-webbplats:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Installationskontroll

När modulen är korrekt installerad finns följande nyckel i registret:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Obs! Den här registernyckeln finns inte på datorn om HTTP-modulen installeras manuellt enligt beskrivningen i "Information för anpassad installation". Med alternativet /a extraheras bara filer, utan att registret uppdateras.

Information om borttagning

Om du vill ta bort de här ändringarna kör du filen VPModule.msi och väljer alternativet Remove. Du kan också använda Lägg till/ta bort program på Kontrollpanelen.

Information om obevakad installation

Använd följande kommando för att installera ändringarna i obevakat läge:
msiexec /i vpmodule.msi /qb-
Använd följande kommando för att ta bort ändringarna i obevakat läge:
msiexec /x vpmodule.msi /qb-

Information om anpassad installation

Så här installerar du HTTP-modulen manuellt:
  1. Säkerhetskopiera alla Machine.config-filer. Mer information finns i avsnittet "Förutsättningar".
  2. Hämta paketet. Mer information finns i avsnittet "Information om hämtning".
  3. Använd följande kommando för att extrahera Microsoft.Web.ValidatePathModule.dll från VPModule.msi till önskad plats:
    msiexec /a vpmodule.msi
  4. Använd följande kommando för att kopiera modulen till den globala sammansättningscachen:
    gacutil -i microsoft.web.validatepathmodule.dll
    Obs! Modulen extraheras till mappen "Microsoft ValidatePath Module" under den angivna platsen.
  5. Redigera alla Machine.config-filer genom att lägga till följande post i <httpModules>-avsnittet:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Kända problem

Följande problem har rapporterats:
  • I installationsprogrammet kontrolleras att alla Machine.config-filer uppdateras med en <httpModule>-post för filen Microsoft.Web.ValidatePathModule.dll. Problemet som beskrivs i den här artikeln kan dock uppstå ändå.

    Om det finns en Web.config-fil, och denna raderar listan som definieras på Machine.config-nivå, kan problemet uppstå. Problemet kan till exempel orsakas av en post av följande slag i en Web.config-fil:
    <httpModules>
        <clear/>
    </httpModules>
    
    Den här konfigurationen förhindrar att skyddsmodulen körs i det aktuella programmet. Konfigurationen uppstår normalt när HTTP-modulerna som är definierade på Machine.config-nivå inte används i ett program. I stället raderas listan, och en ny lista definieras för det aktuella programmet.
  • Om du installerar en annan version av .NET Framework måste du avinstallera VPModule.msi och sedan installera om filen.
  • Om du vill veta mer om problem med SQL Server Reporting Services and VPModule.msi klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
    887787 Felmeddelanden från Reporting Services visas efter installation av ASP.NET-modulen ValidatePath

Referenser

Om du vill veta mer klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
887405 Använda Windows Installer och Grupprincip för att distribuera VPModule.msi i en Active Directory-domän
Om du vill veta mer klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
887404 Använda Systems Management Server 2003 för att distribuera ValidatePath-modulen
Om du vill veta mer klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
887290 Använda sökprogrammet för ASP.NET-modulen ValidatePath (VPModuleScanner.js)
Mer information om sessionstillstånd finns på följande Microsoft-webbplats:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp

Egenskaper

Artikel-id: 887289 - Senaste granskning: den 3 december 2007 - Revision: 3.7
Informationen i denna artikel gäller:
  • 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
Nyckelord: 
kbsecurity kbtshoot KB887289

Ge feedback

 

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