Freigeben über


Klassische übergeordnete ASP-Pfade sind standardmäßig deaktiviert.

von Robert McMurray

Mit klassischen übergeordneten ASP-Pfaden können Entwickler relative Adressen verwenden, die „…“ in den Pfaden zu Dateien oder Ordnern enthalten. Der folgende Codeauszug veranschaulicht beispielsweise eine ASP-Seite, die einen übergeordneten Pfad zuordnet:

<%
   Response.Write Server.MapPath("../example.asp")
%>

Darüber hinaus veranschaulicht der folgende Codeauszug eine ASP-Seite, die auf eine eingeschlossene Datei in einem Ordner verweist, der einen übergeordneten Pfad verwendet:

<!--#include file="../_fpclass/fpdblib.inc"-->

In verschiedenen früheren Versionen von IIS waren übergeordnete Pfade standardmäßig aktiviert. In IIS 6.0 wurde das Standardverhalten aus Sicherheits- und Entwurfsgründen geändert, sodass übergeordnete Pfade deaktiviert werden: Indem die Ausführung übergeordneter Pfade verhindert wird, verhindern Sie die Einbindung von Inhalten über Sicherheits- oder Anwendungsgrenzen hinweg. Standardmäßig werden Fehlermeldungen zu klassischen ASP-Skripts nicht an den Webbrowser gesendet, und jeglicher Versuch, übergeordnete Pfade zu verwenden, gibt die folgende Fehlermeldung an einen Webbrowser zurück:

An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator, please click here to find out more about this error.
(Note: The ASP script error message listed above may be customized. For more information, see the Classic ASP script errors are no longer shown in a Web browser by default topic.)

Wenn Sie das Senden von ASP-Skriptfehlermeldungen aktivieren und Ihre klassischen ASP-Skripts versuchen, einen Pfad in einem übergeordneten Ordner zuzuordnen, erhalten Sie die folgende Fehlermeldung in Ihrem Webbrowser:

Server.MapPath() error 'ASP 0175 : 80004005'
Disallowed Path Characters
/test/example.asp, line 100
The '..' characters are not allowed in the Path parameter for the MapPath method.

Wenn Ihre klassischen ASP-Skripts versuchen, eine Seite einzuschließen, die übergeordnete Pfade in IIS verwendet, erhalten Sie die folgende Fehlermeldung in Ihrem Webbrowser:

Active Server Pages error 'ASP 0131'
Disallowed Parent Path
/test/example.asp, line 100
The Include file '../_fpclass/fpdblib.inc' cannot contain '..' to indicate the parent directory.

Arbeiten mit Benutzerzugriffssteuerung

Sie müssen sicherstellen, dass Sie die Schritte in diesem Dokument mit einem Konto ausführen, das über vollständige Administratorberechtigungen verfügt. Dies lässt sich am besten mit einer von zwei Methoden erreichen:

  • Melden Sie sich mit dem lokalen Administratorkonto bei Ihrem Computer an.
  • Wenn Sie mit einem Konto angemeldet sind, das über Administratorberechtigungen verfügt, bei dem es sich jedoch nicht um das lokale Administratorkonto handelt, öffnen Sie alle Anwendungen und alle Eingabeaufforderungssitzungen mit der Option „Als Administrator ausführen“.

Diese oben genannten Bedingungen sind erforderlich, da die Sicherheitskomponente für die Benutzerkontensteuerung (User Account Control, UAC) in Windows Vista und Windows Server 2008 den Administratorzugriff auf die IIS-Konfigurationseinstellungen verhindert. Weitere Informationen zur Benutzerkontensteuerung (UAC) finden Sie in der folgenden Dokumentation:

Beheben von Problemen mit übergeordneten Pfaden

Verwenden virtueller Pfade

Als Alternative zur Verwendung übergeordneter Pfade in Ihrem ASP-Code können Sie virtuelle Pfade verwenden. Virtuelle Pfade erfordern die Eingabe des vollständigen Ordnerpfads aus dem URL-Stamm Ihrer Website. Zum Beispiel:

Zuordnen von Pfaden:

<%
   Response.Write Server.MapPath("/test/example.asp")
%>

Einschließen von Pfaden:

<!--#include virtual="/_fpclass/fpdblib.inc"-->

Aktivieren von übergeordneten ASP-Pfaden

Sie können übergeordnete Pfade mithilfe des IIS-Managers aktivieren bzw. deaktivieren. Öffnen Sie dazu den IIS-Manager, und navigieren Sie zu der Site oder Anwendung, für die Sie übergeordnete Pfade konfigurieren möchten, und doppelklicken Sie dann auf das Feature ASP.

Screenshot of the Default Web Site Home page. The A S P icon is selected.

Konfigurieren Sie in der Liste der ASP-Features die Option Übergeordnete Pfade aktivieren.

Screenshot of the A S P features screen. Enable Parent Paths is selected.

Sie können diese Einstellung auch mithilfe des Befehlszeilentools „AppCmd.exe“ mit der folgenden Syntax konfigurieren:

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /enableParentPaths:"False" /commit:apphost

Weitere Informationen

Weitere Informationen zu den Optionen, die für klassische ASP verfügbar sind, finden Sie auf der folgenden Seite in der IIS-Konfigurationsreferenz auf der Microsoft IIS.net-Website:

https://www.iis.net/ConfigReference/system.webServer/asp

Weitere Details zu übergeordneten Pfaden in IIS finden Sie auf der folgenden Seite in der Microsoft Knowledge Base:

Aktivieren von übergeordneten Pfaden ist in IIS 6.0 standardmäßig deaktiviert