HTTP-Modul zur Prüfung auf Kanonisierungsprobleme bei ASP.NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 887289 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
887289 HTTP module to check for canonicalization issues with ASP.NET
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Microsoft stellt ein HTTP-Modul zur Verfügung, mit dem empfohlene Vorgehensweisen für die Kanonisierung implementiert werden und mit dem Kunden ihre ASP.NET-Anwendungen besser schützen können. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
887459 Programmatische Überprüfung auf Kanonisierungsprobleme bei ASP.NET
Weitere Informationen dazu, wie Sie ermitteln können, welche ASP.NET-Version auf Ihrem Computer installiert ist, finden Sie in folgendem Artikel der Microsoft Knowledge Base:
318785 INFO: So können Sie feststellen, ob Service Packs für .NET Framework installiert sind

Problembeschreibung

Wenn ein Webserver einen URL empfängt, ordnet der Server die Anforderung einem Dateisystempfad zu, der die Antwort bestimmt. Die für die Zuordnung der Anforderung verwendete Kanonisierungsroutine muss den URL korrekt auflösen, um die Verarbeitung unerwünschter Inhalte zu vermeiden. Unbehandelte Kanonisierungsprobleme können zu unerwarteten Ergebnissen führen. Weitere Informationen zur Kanonisierung finden Sie auf folgender Website von Microsoft:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Lösung

HTTP-Modul "Microsoft.Web.ValidatePathModule.dll"

Download-Informationen

Die folgende Datei steht im Microsoft Download Center zum Download zur Verfügung:

Bild minimierenBild vergrößern
Download
Paket "VPModule.msi" jetzt downloaden.

Datum der Freigabe: 07.10.04

Weitere Informationen über das Herunterladen von Microsoft Support-Dateien finden Sie in folgendem Artikel der Microsoft Knowledge Base:
119591 So erhalten Sie Microsoft Support-Dateien im Internet
Microsoft hat diese Datei auf Viren überprüft. Microsoft hat dazu die neueste Software zur Virenerkennung verwendet, die zum Zeitpunkt der Bereitstellung verfügbar war. Die Datei befindet sich auf Servern mit verstärkter Sicherheit, wodurch nicht autorisierte Änderungen an der Datei weitestgehend verhindert werden.

Voraussetzungen

Die Datei "VPModule.msi" wurde für die 32-Bit-Version von Microsoft .NET Framework entwickelt.

Bevor Sie die Datei "VPModule.msi" installieren, erstellen Sie Sicherungskopien aller Instanzen der Datei "Machine.config" auf Ihrem Computer. Gehen Sie folgendermaßen vor, um eine Sicherungskopie der Datei "Machine.config" zu erstellen:
  1. Klicken Sie auf Start und auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
  2. Suchen Sie alle Versionen der Datei "Machine.config". Die Datei oder die Dateien mit dem Namen "Machine.config" ist/sind in dem folgenden Ordner gespeichert, wobei <Framework-Versionsnummer> für die Version von Microsoft .NET Framework steht, die auf Ihrem Computer installiert ist:
    %windir%\Microsoft.NET\Framework\<Framework-Versionsnummer>\CONFIG
    Ist beispielsweise .NET Framework 1.1 auf Laufwerk C installiert, geben Sie den folgenden Befehl ein, und drücken Sie anschließend die [EINGABETASTE]:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Geben Sie den folgenden Befehl ein, um eine Sicherungskopie der Datei "Machine.config" zu erstellen, und drücken Sie anschließend die [EINGABETASTE]:
    copy machine.config machine.config.bak
Wiederholen Sie diese Schritte für jede Instanz von .NET Framework, die auf Ihrem Computer installiert ist.

Informationen zur Installation

Microsoft hat ein Installationspaket mit dem Namen "VPModule.msi" freigegeben. Die Datei "VPModule.msi" installiert die Datei "Microsoft.Web.ValidatePathModule.dll" auf Ihrem Computer. Durch diese Installation werden alle Dateien mit dem Namen "Machine.config" mit einem neuen HTTP-Moduleintrag für alle installierten Versionen von .NET Framework aktualisiert.

Gehen Sie bei der Verwendung des Installationspakets wie folgt vor: Downloaden Sie die Datei "VPModule.msi", doppelklicken Sie auf das Paket, um die Installation zu starten, und befolgen Sie dann die Installationsanweisungen.

Durch die Datei "VPModule.msi" bewirkte Aktionen

Das Installationsprogramm extrahiert zunächst eine Datei mit dem Namen "Microsoft.Web.ValidatePathModule.dll". Dann aktualisiert es alle auf dem betreffenden Computer befindlichen Dateien mit dem Namen "Machine.config", so dass diese einen Eintrag aufweisen, der dem folgenden ähnelt:
    <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>
Anschließend fügt das Installationsprogramm die Datei "Microsoft.Web.ValidatePathModule.dll" dem globalen Assemblycache (Global Assembly Cache, GAC) hinzu.

Interessierte Entwickler können die programmatische Funktionsweise der Datei "Microsoft.Web.ValidatePathModule.dll" aus dem folgendem Quellcode ableiten:
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");
            }
        }
    }
}
Weitere Informationen zu Befehlszeilenoptionen, die Sie bei der Installation des Moduls verwenden können, finden Sie auf der folgenden Microsoft-Website:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informationen zur Überprüfung der Installation

Wenn der folgende Registrierungsschlüssel existiert, ist das Modul korrekt installiert:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Hinweis: Dieser Registrierungsschlüssel ist auf Ihrem Computer nicht vorhanden, wenn Sie das HTTP-Modul gemäß der Beschreibung aus dem Abschnitt "Hinweise zur benutzerdefinierten Installation" installieren. Mit der Option /a werden lediglich Dateien extrahiert. Die Registrierung wird durch diese Option nicht aktualisiert.

Hinweise zur Deinstallation

Führen Sie die Datei "VPModule.msi" aus und wählen Sie die Option Entfernen, um diese Änderungen rückgängig zu machen. Alternativ können Sie auch das Dienstprogramm Software in der Systemsteuerung dazu verwenden.

Hinweise zur unbeaufsichtigten Installation

Verwenden Sie den folgenden Befehl, um die beschriebenen Änderungen im unbeaufsichtigten Modus vornehmen zu lassen:
msiexec /i vpmodule.msi /qb-
Verwenden Sie den folgenden Befehl, um diese Änderungen im unbeaufsichtigten Modus rückgängig machen zu lassen:
msiexec /x vpmodule.msi /qb-

Hinweise zur benutzerdefinierten Installation

Gehen Sie folgendermaßen vor, um das HTTP-Modul manuell zu installieren:
  1. Erstellen Sie Sicherungskopien aller vorhandenen Dateien mit dem Namen "Machine.config". Weitere Informationen zur Vorgehensweise finden Sie im Abschnitt "Voraussetzungen".
  2. Downloaden Sie das Paket. Weitere Informationen zur Vorgehensweise finden Sie im Abschnitt "Download-Informationen".
  3. Verwenden Sie den folgenden Befehl, um die Datei "Microsoft.Web.ValidatePathModule.dll" aus der Datei "VPModule.msi" an einen Speicherort Ihrer Wahl zu extrahieren:
    msiexec /a vpmodule.msi
  4. Verwenden Sie den folgenden Befehl, um das Modul in den globalen Assemblycache zu kopieren:
    gacutil -i microsoft.web.validatepathmodule.dll
    Hinweis: Das Modul wird in einen Ordner mit dem Namen "Microsoft ValidatePath Module" an dem von Ihnen festgelegten Speicherort extrahiert.
  5. Bearbeiten Sie die Datei(en) "Machine.config" in der Weise, dass Sie im Abschnitt <httpModules> den folgenden Eintrag hinzufügen:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Bekannte Probleme

Die folgenden Probleme sind bekannt:
  • Das Installationsprogramm stellt sicher, dass die Datei(en) "Machine.config" erfolgreich mit einem <httpModule>-Eintrag für die Datei "Microsoft.Web.ValidatePathModule.dll" aktualisiert wird/werden. Unter gewissen Umständen kann es aber trotzdem noch zu dem oben beschriebene Verhalten kommen.

    Dieses Verhalten kann auftreten, wenn eine Datei "Web.config" vorhanden ist, welche die auf der Ebene der Datei "Machine.config" definierte Liste löscht. Das Verhalten kann zum Beispiel durch einen Eintrag in einer Datei "Web.config" ausgelöst werden, der dem folgenden ähnelt:
    <httpModules>
        <clear/>
    </httpModules>
    
    Bei dieser Konfiguration wird die Ausführung des HTTP-Moduls zur Behebung des Problems verhindert. Diese Konfiguration ist in der Regel anzutreffen, wenn eine Anwendung die Verwendung der auf Machine.config-Ebene definierten HTTP-Module nicht zulässt und stattdessen die Liste löscht und eine neue Liste definiert, die speziell für die betreffende Anwendung gilt.
  • Wenn Sie eine andere Version von .NET Framework installieren, müssen Sie die Datei "VPModule.msi" deinstallieren und danach neu installieren.
  • Weitere Informationen zu diesem Problemen bei SQL Server Reporting Services und "VPModule.msi" finden Sie in folgendem Artikel der Microsoft Knowledge Base:
    887787 You may receive error messages from Reporting Services after you install the ASP.NET ValidatePath Module

Informationsquellen

Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
887405 Verwenden von Windows Installer und Gruppenrichtlinien zum Bereitstellen der Datei "VPModule.msi" in einer Active Directory-Domäne
Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
887404 Verwenden von Systems Management Server 2003 zum Verteilen des ValidatePath-Moduls
Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
887290 Verwendung des ASP.NET-Scanners für das Modul "ValidatePath" (VPModuleScanner.js)
Weitere Informationen zu verschiedenen Session States finden Sie auf folgender Microsoft-Website:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp

Eigenschaften

Artikel-ID: 887289 - Geändert am: Montag, 3. Dezember 2007 - Version: 3.7
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbsecurity kbtshoot KB887289
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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