Du er frakoblet, venter på at Internett skal koble til igjen

HTTP-modul som søker etter kanoniseringsproblemer med ASP.NET

Sammendrag
Microsoft har gjort tilgjengelig en HTTP-modul som implementerer gode kanoniseringsrutiner for å hjelpe kundene med å beskytte ASP.NET-programmene sine. Hvis du vil ha mer informasjon, klikker du artikkelnummeret nedenfor for å vise artikkelen i Microsoft Knowledge Base:
887459 Programmatisk kontroll av kanoniseringsproblemer med ASP.NET
Hvis du vil ha mer informasjon om hvordan du finner ut hvilken versjon av ASP.NET du har, klikker du artikkelnummeret nedenfor for å vise artikkelen i Microsoft Knowledge Base:
318785 Avgjøre om oppdateringspakkene er installert i .NET Framework
Symptom
Når en webserver mottar en URL-adresse, tilordner serveren forespørselen til en filsystembane som bestemmer svaret. Kanoniseringsrutinen som brukes til å tilordne forespørselen, må analysere URL-adressen korrekt for å unngå å svare med eller behandle uventet innhold. Ubehandlede kanoniseringsproblemer kan føre til uventede resultater. Hvis du vil ha mer informasjon, går du til følgende Microsoft-webområde:
Løsning

Microsoft.Web.ValidatePathModule.dll - HTTP-modul

Nedlastingsinformasjon

Følgende fil kan lastes ned fra Microsoft Download Center:

Last nedLast ned VPModule.msi-pakken nå.

Utgivelsesdato: 7. oktober 2004

Hvis du vil ha mer informasjon om hvordan du laster ned Microsoft-støttefiler, klikker du dette artikkelnummeret for å vise artikkelen i Microsoft Knowledge Base (artikkelen kan være på engelsk):
119591 Slik laster du ned Microsoft-støttefiler fra elektroniske tjenester
Microsoft søkte etter virus i denne filen. Microsoft brukte det nyeste antivirusprogrammet som var tilgjengelig den datoen filen ble gjort tilgjengelig. Filen er lagret på servere med forbedret sikkerhet, noe som forhindrer at uvedkommende gjør endringer i filen.

Forutsetninger

VPModule.msi-filen er utformet for Microsofts 32-biters .NET Framework.

Før du installerer VPModule.msi-filen, bør du ta sikkerhetskopi av alle forekomster av Machine.config-filen på datamaskinen. Følg disse trinnene for å lage en sikkerhetskopi av Machine.config-filen:
  1. Klikk Start, Kjør, skriv inn cmd og klikk deretter OK.
  2. Finn alle versjoner av Machine.config-filen. Machine.config-filen eller -filene ligger i følgende mappe, der <framework-versjonsnummer> er versjonen av Microsoft .NET Framework du har installert:
    %windir%\Microsoft.NET\Framework\<framework-versjonsnummer>\CONFIG
    Hvis for eksempel .NET Framework 1.1 er installert på stasjon C, skriver du inn følgende kommando og trykker ENTER:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Skriv inn følgende kommando for å opprette en sikkerhetskopi av Machine.config-filen, og trykk deretter ENTER:
    copy machine.config machine.config.bak
Gjenta disse trinnene for hver forekomst av .NET Framework som er installert på datamaskinen.

Installasjonsinformasjon

Microsoft har gitt ut en installasjonspakke som har fått navnet VPModule.msi. VPModule.msi-filen installerer filen Microsoft.Web.ValidatePathModule.dll på datamaskinen. Installasjonen oppdaterer Machine.config-filen eller -filene med en ny HTTP-moduloppføring for alle installerte versjoner av .NET Framework.

Hvis du vil bruke installasjonspakken, laster du ned VPModule.msi-filen, dobbeltklikker pakken for å starte installasjonen, og deretter følger du installasjonsinstruksjonene.

Hva VPModule.msi gjør

Installasjonsprogrammet trekker først ut en fil som har fått navnet Microsoft.Web.ValidatePathModule.dll. Installasjonsprogrammet oppdaterer deretter alle Machine.config-filene som finnes på datamaskinen, slik at filene har en oppføring som ser ut som det 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>
Installasjonsprogrammet legger deretter filen Microsoft.Web.ValidatePathModule.dll i Global Assembly Cache (GAC).

Hvis utviklere vil vite hva filen Microsoft.Web.ValidatePathModule.dll gjør, finnes 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");            }        }    }}
Hvis du vil ha mer informasjon om hvilke kommandolinjebrytere du kan bruke til å installere modulen, går du til følgende Microsoft-webområde:

Verifiseringsinformasjon om installasjonen

Når modulen er riktig installert, blir følgende registernøkkel opprettet:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Obs!  Denne registernøkkelen finnes ikke på datamaskinen hvis du installerer HTTP-modulen manuelt på den måten som er beskrevet i avsnittet Informasjon om tilpasset installasjon. Alternativet /a trekker bare ut filer. Det oppdaterer ikke registeret.

Fjerningsinformasjon

Hvis du vil fjerne disse endringene, kjører du VPModule.msi-filen og velger alternativet Fjern. Alternativt kan du bruke Legg til / fjern programmer i kontrollpanelet.

Informasjon om uovervåket installasjon

Bruk følgende kommando for å installere disse endringene i uovervåket modus:
msiexec /i vpmodule.msi /qb-
Bruk følgende kommando for å fjerne disse endringene i uovervåket modus:
msiexec /x vpmodule.msi /qb-

Informasjon om tilpasset installasjon

Hvis du vil installere HTTP-modulen manuelt, følger du denne fremgangsmåten:
  1. Ta en sikkerhetskopi av Machine.config-filen eller -filene. Hvis du vil ha mer informasjon om hvordan du gjør dette, se i avsnittet Forutsetninger.
  2. Last ned pakken. Hvis du vil ha mer informasjon om hvordan du gjør dette, se i avsnittet Nedlastingsinformasjon.
  3. Bruk følgende kommando for å trekke ut filen Microsoft.Web.ValidatePathModule.dll fra VPModule.msi-filen til et valgt sted:
    msiexec /a vpmodule.msi
  4. Bruk følgende kommando for å kopiere modulen til GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Obs!  Modulen trekkes ut til en mappe som har fått navnet Microsoft ValidatePath Module, og som ligger under plasseringen som du har angitt.
  5. Rediger Machine.config-filen eller -filene for å legge følgende oppføring til delen <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>

Kjente problemer

Følgende problemer er kjente:
  • Installasjonsprogrammet kontroller at Machine.config-filen eller -filene er riktig oppdatert med en <httpModule>-oppføring for filen Microsoft.Web.ValidatePathModule.dll. I visse tilfeller hindrer dette imidlertid ikke at følgende skjer.

    Dette kan skje hvis det allerede finnes en Web.config-fil, og at Web.config-filen fjerner listen som er definert på Machine.config-nivået. En oppføring som for eksempel ligner på følgende i en Web.config-fil, kan medføre denne virkemåten:
    <httpModules>    <clear/></httpModules>
    Denne konfigurasjonen hindrer forminskingsmodulen å kjøre i dette gitte programmet. Denne konfigurasjonen oppstår vanligvis når et program ikke vil bruke HTTP-moduler som er definert på Machine.config-nivået, men heller vil fjerne innholdet i listen for deretter å definere en ny liste som er laget spesielt for det gjeldende programmet.
  • Hvis du installerer en annen versjon av .NET Framework, må du først avinstallere og deretter installere VPModule.msi-filen på nytt.
  • Hvis du vil ha mer informasjon om problemer med SQL Server Reporting Services og VPModule.msi, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base (artikkelen kan være på engelsk):
    887787 Du kan få feilmeldinger fra Reporting Services etter at du har installert ASP.NET ValidatePath-modulen
Referanser
Hvis du vil ha mer informasjon, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
887405 Slik bruker du Windows Installer og Group Policy til å distribuere VPModule.msi-filen i et Active Directory-domene
Hvis du vil ha mer informasjon, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
887404 Slik bruker du Systems Management Server 2003 til å distribuere ValidatePath-modulen
Hvis du vil ha mer informasjon, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
887290 Slik bruker du ASP.NET ValidatePath-modulskanneren (VPModuleScanner.js)
Hvis du vil ha mer informasjon om øktstatuser, går du til følgende Microsoft-webområde:
Egenskaper

Artikkel-ID: 887289 – Forrige gjennomgang: 12/03/2007 18:52:01 – Revisjon: 3.8

  • 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
  • kbsecurity kbtshoot KB887289
Tilbakemelding