HTTP-modul undersøger, om der er navnevedtagelsesproblemer med ASP.NET

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 887289 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

Sammenfatning

For at hjælpe kunderne med at beskytte deres ASP.NET-programmer har Microsoft udgivet et HTTP-modul, der implementerer de bedste metoder for navnevedtagelse (canonicalization). Yderligere oplysninger finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
887459 Kontroller programmerisk, om der er navnevedtagelsesproblemer med ASP.NET
Yderligere oplysninger om, hvordan du afgør, hvilken version af ASP.NET du har, finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
318785 Undersøge, om der er installeret servicepakker på .NET Framework (artiklen er evt. på engelsk)

Symptomer

Når en URL-adresse modtages af en webserver, knytter serveren forespørgslen til en filsystemsti, der bestemmer svaret. Navnevedtagelsesrutinen, der bruges til at overføre forespørgslen, skal analysere URL-adressen korrekt for at undgå at levere eller behandle uventet indhold. Uhåndterede navnevedtagelsesproblemer kan give uventede resultater. Yderligere oplysninger om navnevedtagelse finder du på følgende Microsoft-websted:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Løsning

Microsoft.Web.ValidatePathModule.dll - HTTP-modul

Oplysninger om overførsel

Følgende fil kan hentes fra Microsoft Download Center:

Skjul billedetUdvid billedet
Hent
Hent VPModule.msi-pakken nu.

Udgivelsesdato: 07.10.04

Yderligere oplysninger om, hvordan du henter filer fra Microsoft Support, finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
119591 Sådan hentes Microsoft-supportfiler på onlinetjenester
Microsoft har scannet denne fil for virus. Dertil har Microsoft anvendt de nyeste antivirusprogrammer, der var tilgængelige på det tidspunkt, da filen blev lagt ud. Filen gemmes på servere med forbedret sikkerhed, der medvirker til at forhindre uautoriserede ændringer af filen.

Forudsætninger

Filen VPModule.msi er designet til 32-bit Microsoft .NET Framework.

Før du installerer filen VPModule.msi, skal du sikkerhedskopiere alle forekomster af filen Machine.config på din computer. Sådan oprettes en sikkerhedskopi af filen Machine.config:
  1. Klik på Start, klik på Kør, skriv cmd, og klik derefter på OK.
  2. Find hver eneste version af filen Machine.config. Filen eller filerne Machine.config ligger i følgende mappe, hvor <framework-versionsnummer> er den version af Microsoft .NET Framework, du har installeret:
    %windir%\Microsoft.NET\Framework\<framework-versionsnummer>\CONFIG
    Hvis f.eks. .NET Framework 1.1 er installeret på drev C, skal du skrive følgende kommando og derefter trykke på ENTER:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Skriv følgende kommando for at tage en sikkerhedskopi af filen Machine.config, og tryk derefter på ENTER:
    copy machine.config machine.config.bak
Gentag disse trin for hver forekomst af .NET Framework, der er installeret på dit system.

Installationsoplysninger

Microsoft har udgivet installationspakken VPModule.msi. Filen VPModule.msi installerer filen Microsoft.Web.ValidatePathModule.dll på dit system. Installationen opdaterer Machine.config-filen eller -filerne med et nyt HTTP-modulelement i alle installerede versioner af .NET Framework.

Hvis du vil bruge installationspakken, skal du hente filen VPModule.msi, dobbeltklikke på pakken for at starte installationen og derefter følge installationsvejledningen.

Hvad VPModule.msi gør

Installationsprogrammet pakker først filen Microsoft.Web.ValidatePathModule.dll ud. Installationsprogrammet opdaterer derefter alle Machine.config-filer, der findes på systemet, så filerne indeholder et element i stil med følgende:
    <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>
Installationsprogrammet tilføjer derefter filen Microsoft.Web.ValidatePathModule.dll i GAC (Global Assembly Cache).

Udviklere, der ønsker indsigt i, hvad filen Microsoft.Web.ValidatePathModule.dll gør programmeringsmæssigt, kan se kildekoden nedenfor:
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");
            }
        }
    }
}
Oplysninger om kommandolinjeparametre, du kan bruge til at installere modulet, finder du på følgende Microsoft-websted:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Installationsbekræftelse

Når modulet er installeret korrekt, findes følgende registreringsdatabasenøgle:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Bemærk! Denne registreringsdatabasenøgle findes ikke på systemet, hvis du manuelt installerer HTTP-modulet som beskrevet i afsnittet "Oplysninger om manuel installation". Parameteren /a pakker kun filer ud. Den opdaterer ikke registreringsdatabasen.

Oplysninger om fjernelse

Du kan fjerne disse ændringer ved at køre filen VPModule.msi og vælge indstillingen Remove. Du kan også bruge Tilføj/fjern programmer i Kontrolpanel.

Oplysninger om automatiseret installation

Brug følgende kommando til at installere disse ændringer i automatiseret tilstand:
msiexec /i vpmodule.msi /qb-
Brug følgende kommando til at fjerne disse ændringer i automatiseret tilstand:
msiexec /x vpmodule.msi /qb-

Oplysninger om manuel installation

Hvis du manuelt vil installere HTTP-modulet, skal du følge disse trin:
  1. Tag en sikkerhedskopi af Machine.config-filen eller -filerne. Yderligere oplysninger om denne handling finder du i afsnittet "Forudsætninger".
  2. Hent pakken. Yderligere oplysninger om denne handling finder du i afsnittet "Oplysninger om overførsel".
  3. Brug følgende kommando til at pakke filen Microsoft.Web.ValidatePathModule.dll ud fra filen VPModule.msi til den ønskede placering:
    msiexec /a vpmodule.msi
  4. Brug følgende kommando til at kopiere modulet til GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Bemærk! Modulet pakkes ud til mappen "Microsoft ValidatePath Module" under den placering, du har angivet.
  5. Rediger Machine.config-filen eller -filerne for at tilføje følgende element i afsnittet <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Kendte problemer

Der er følgende kendte problemer:
  • Installationsprogrammet sørger for, at Machine.config-filen eller -filerne opdateres korrekt med elementet <httpModule> til filen Microsoft.Web.ValidatePathModule.dll. I visse tilfælde kan denne handling dog ikke forhindre den omtalte situation i at opstå.

    Situationen kan opstå, hvis der findes en Web.config-fil, der rydder indholdet af den liste, som er defineret på Machine.config-niveau. Situationen kan f.eks. opstå, hvis en Web.config-fil indeholder et element i stil med følgende:
    <httpModules>
        <clear/>
    </httpModules>
    
    Denne konfiguration forhindrer afhjælpningsmodulet i at blive afviklet i dette program. Denne konfiguration findes normalt, hvis et program ikke vil bruge de HTTP-moduler, der er defineret på Machine.config-niveau, men i stedet vil rydde listen og derefter definere en ny liste, der gælder specifikt for det aktuelle program.
  • Hvis du installerer en anden version af .NET Framework, skal du afinstallere og derefter geninstallere filen VPModule.msi.
  • Yderligere oplysninger om problemer med SQL-serverrapporteringstjenester og VPModule.msi finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
    887787 Du kan få vist fejlmeddelelser fra rapporteringstjenester, når du har installeret modulet ASP.NET ValidatePath (artiklen er evt. på engelsk)

Referencer

Yderligere oplysninger finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
887405 Sådan bruges Windows Installer og gruppepolitik til at installere VPModule.msi i et Active Directory-domæne
Yderligere oplysninger finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
887404 Sådan bruges Systems Management Server 2003 til at installere ValidatePath-modulet
Yderligere oplysninger finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
887290 Sådan bruges ASP.NET ValidatePath-modulscanneren (VPModuleScanner.js)
Yderligere oplysninger om disse sessionsstatusser finder du på følgende Microsoft-websted:
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Egenskaber

Artikel-id: 887289 - Seneste redigering: 3. december 2007 - Redigering: 3.8
Oplysningerne i denne artikel gælder:
  • 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
Nøgleord: 
kbsecurity kbtshoot KB887289

Send 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