Kanonisen muunnon ongelmien ASP.NET-sovelluksessa tarkistamisen HTTP-moduuli

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 887289 - Näytä tuotteet, joita tämä artikkeli koskee.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Yhteenveto

Microsoft on luonut kanonisen muunnon parhaat käytännöt toteuttavan HTTP-moduulin auttaakseen asiakkaita suojaamaan ASP.NET-sovelluksiaan. Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
887459 Kanonisen muunnon ongelmien ohjelmallinen tarkistaminen ASP.NET-sovelluksessa
Saat lisätietoja ASP.NETin version selvittämisestä napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
318785 .NET Frameworkiin asennettujen Service Pack -pakettien selvittäminen (tämä artikkeli saattaa olla englanninkielinen)

Oire

Kun Web-palvelin vastaanottaa URL-osoitteen, palvelin yhdistää pyynnön tiedostojärjestelmäpolkuun, joka määrittää vastauksen. Pyynnön yhdistämiseen käytettävän rutiinin on jäsennettävä URL-osoite oikein, jotta odottamatonta sisältöä ei tarjota tai käsitellä. Käsittelemättömät kanonisen muunnon ongelmat saattavat johtaa odottamattomiin tuloksiin. Lisätietoja kanonisesta muunnosta on seuraavassa Microsoftin Web-sivustossa:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Ratkaisu

Microsoft.Web.ValidatePathModule.dll - HTTP-moduuli

Lataamistiedot

Voit ladata seuraavan tiedoston Microsoft Download Centeristä:

Kutista tämä kuvaLaajenna tämä kuva
Lataa
Lataa VPModule.msi-paketti nyt.

Julkaisupäivämäärä: 7.10.2004

Lisätietoja Microsoft-tukitiedostojen lataamisesta ja asentamisesta saat napsauttamalla alla olevaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
119591 Microsoft-tukitiedostojen hankkiminen online-palveluista
Microsoft on tarkistanut tämän tiedoston virusten varalta. Microsoft käytti viimeisintä virustentarkistusohjelmistoa, joka oli saatavana tiedoston julkaisupäivänä. Tiedosto on tallennettu suojattuihin palvelimiin, joten sitä ei voi muokata luvattomasti.

Edellytykset

VPModule.msi-tiedosto on suunniteltu 32-bittiselle Microsoft .NET Frameworkille.

Ennen kuin asennat VPModule.msi-tiedoston, varmuuskopioi kaikki tietokoneen Machine.config-tiedoston esiintymät. Voit luoda Machine.config-tiedostosta varmuuskopion seuraavasti:
  1. Napsauta Käynnistä-painiketta, valitse Suorita, kirjoita tekstikenttään cmd ja valitse lopuksi OK.
  2. Etsi Machine.config-tiedoston kaikki versiot. Machine.config-tiedosto tai -tiedostot sijaitsevat seuraavassa kansiossa, jossa <Framework-version numero> on asennetun Microsoft .NET Frameworkin numero:
    %windir%\Microsoft.NET\Framework\<Framework-version numero>\CONFIG
    Esimerkiksi jos .NET Framework 1.1 on asennettu asemaan C, kirjoita seuraava komento ja paina sitten ENTER-näppäintä:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Luo Machine.config-tiedoston varmuuskopio seuraavan komennon avulla ja paina sitten ENTER-näppäintä:
    copy machine.config machine.config.bak
Toista nämä vaiheet jokaiselle järjestelmään asennetulle .NET Framework -esiintymälle.

Asennustiedot

Microsoft on julkaissut VPModule.msi-asennuspaketin. VPModule.msi-tiedosto asentaa järjestelmään Microsoft.Web.ValidatePathModule.dll-tiedoston. Asennus päivittää uuden HTTP-moduulimerkinnän kaikkiin asennettujen .NET Frameworkin versioiden Machine.config-tiedostoon tai -tiedostoihin.

Jos haluat käyttää asennuspakettia, lataa VPModule.msi-tiedosto, aloita asennus kaksoisnapsauttamalla pakettia ja noudata sitten asennusohjeita.

VPModule.msi-tiedoston tehtävät

Asennusohjelma purkaa ensin Microsoft.Web.ValidatePathModule.dll-tiedoston. Tämän jälkeen asennusohjelma päivittää kaikki järjestelmässä olevat Machine.config-tiedostot niin, että niissä on seuraavankaltainen merkintä:
    <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>
Tämän jälkeen asennusohjelma lisää Microsoft.Web.ValidatePathModule.dll-tiedoston GAC:hen (Global Assembly Cache).

Alla on sellaisille kehittäjille tarkoitettu lähdekoodi, jotka haluavat ymmärtää, mitä Microsoft.Web.ValidatePathModule.dll-tiedosto tekee ohjelmallisesti:
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");
            }
        }
    }
}
Lisätietoja moduulin asennuksessa käytettävistä komentorivivalitsimista on seuraavassa Microsoftin Web-sivustossa:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Asennuksen tarkistamistiedot

Kun moduuli on asennettu oikein, rekisterissä on seuraava rekisteriavain:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Huomautus Tätä rekisteriavainta ei ole järjestelmässä, jos HTTP-moduuli asennetaan manuaalisesti "Mukautetun asennuksen tiedot" -osan ohjeiden mukaisesti. Valitsimen /a käyttäminen vain purkaa tiedostot. Tällöin rekisteriä ei päivitetä.

Poistamistiedot

Jos haluat poistaa nämä muutokset, suorita VPModule.msi-tiedosto ja valitse Remove-vaihtoehto. Voit myös käyttää Ohjauspaneelin Lisää tai poista sovellus -työkalua.

Valvomattoman asennuksen tiedot

Voit asentaa muutokset valvomattomassa tilassa seuraavan komennon avulla:
msiexec /i vpmodule.msi /qb-
Voit poistaa muutokset valvomattomassa tilassa seuraavan komennon avulla:
msiexec /x vpmodule.msi /qb-

Mukautetun asennuksen tiedot

Voit asentaa HTTP-moduulin manuaalisesti seuraavasti:
  1. Varmuuskopioi Machine.config-tiedosto tai -tiedostot. Lisätietoja tämän tekemisestä on "Edellytykset"-osassa.
  2. Lataa paketti. Lisätietoja tämän tekemisestä on "Lataamistiedot"-osassa.
  3. Pura Microsoft.Web.ValidatePathModule.dll-tiedosto VPModule.msi-tiedostosta haluamaasi sijaintiin seuraavan komennon avulla:
    msiexec /a vpmodule.msi
  4. Kopioi moduuli GAC:hen seuraavan komennon avulla:
    gacutil -i microsoft.web.validatepathmodule.dll
    Huomautus Moduuli puretaan Microsoft ValidatePath Module -kansioon, joka sijaitsee määrittämässäsi sijainnissa.
  5. Muokkaa Machine.config-tiedostoa tai -tiedostoja lisäämällä seuraava merkintä <httpModules>-osaan:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Tunnetut ongelmat

Tunnettuja ongelmia ovat seuraavat:
  • Asennusohjelma varmistaa, että Machine.config-tiedostoon tai -tiedostojen <httpModule>-osaan päivitetään Microsoft.Web.ValidatePathModule.dll-tiedoston merkintä. Joissakin tilanteissa tämä ei kuitenkaan välttämättä estä kuvattua ongelmaa ilmenemästä.

    Tämä ongelma voi ilmetä, jos olemassa on Web.config-tiedosto, joka poistaa Machine.config-tasolla määritetyn luettelon. Esimerkiksi seuraavankaltainen Web.config-tiedoston merkintä saattaa aiheuttaa tämän ongelman:
    <httpModules>
        <clear/>
    </httpModules>
    
    Tämä kokoonpano estää moduulin suorittamisen kyseiselle sovellukselle. Tämä kokoonpano ilmenee yleensä silloin, kun sovellus ei halua käyttää Machine.config-tasolla määritettyjä HTTP-moduuleita, vaan haluaa tyhjentää luettelon ja määrittää nykyistä sovellusta koskevan uuden luettelon.
  • Jos asennat eri .NET Framework -version, sinun on poistettava VPModule.msi-tiedoston asennus ja asennettava se sitten uudelleen.
  • Saat lisätietoja SQL Server Reporting Services -palveluiden ja VPModule.msi-tiedoston ongelmista napsauttamalla alla olevaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
    887787 Näyttöön saattaa tulla Reporting Services -palveluiden virhesanomia ASP.NET ValidatePath -moduulin asentamisen jälkeen (tämä artikkeli saattaa olla englanninkielinen)

Suositukset

Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
887405 VPModule.msi-tiedoston asentaminen Active Directory -toimialueelle Windows Installerin ja ryhmäkäytännön avulla
Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
887404 ValidatePath-moduulin asentaminen Systems Management Server 2003 -palvelimen avulla
Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
887290 ASP.NET ValidatePath Module Scannerin (VPModuleScanner.js) käyttäminen
Lisätietoja istuntotiloista on Microsoftin Web-sivustossa osoitteessa:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp

Ominaisuudet

Artikkelin tunnus: 887289 - Viimeisin tarkistus: 3. joulukuuta 2007 - Versio: 3.7
Artikkelin tiedot koskevat seuraavia tuotteita:
  • 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
Hakusanat: 
kbsecurity kbtshoot KB887289

Anna palautetta

 

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