EINFÜHRUNG

Mit ASP.NET können Administratoren Anwendungen in Modi für die teilweise Vertrauenswürdigkeit hosten, z. B. als mittlere Vertrauenswürdigkeit. Über benutzerdefinierte Richtliniendateien wird zudem die Konfiguration der benutzerdefinierten Ebenen der teilweisen Vertrauenswürdigkeit ermöglicht. Weitere Informationen zur Verwendung der mittleren Vertrauenswürdigkeit in ASP.NET 2.0 finden Sie auf der folgenden Website des Microsoft Developer Network (MSDN):

So wird's gemacht: Verwenden der mittleren Vertrauenswürdigkeit in ASP.NET 2.0Die mittlere ASP.NET-Vertrauenswürdigkeit wurde zuvor als Mechanismus für das Durchsetzen der Anwendungsisolierung in einer freigegebenen Hostingumgebung beschrieben, in der mehrere Anwendungen, die unterschiedliche Vertrauensebenen haben, auf demselben Webserver gehostet werden. Wir aktualisieren unsere diesbezüglichen Richtlinien, um zu reflektieren, dass das Ausführen einer ASP.NET-Framework-Anwendung nicht die vollständige Isolierung von anderen Anwendungen garantiert, die im selben Prozess oder auf demselben Computer ausgeführt werden. Das empfohlene Verfahren, um die Isolierung von anderen ASP.NET-Framework-Anwendungen auf demselben Server sicherzustellen, ist das Konfigurieren von ASP.NET-Framework-Anwendung für die Ausführung in separaten Prozessen (durch Verwendung einzelner Anwendungspools). Der folgende Abschnitt enthält Informationen zum Konfigurieren von Anwendungen für die Isolierung. Wir aktualisieren unsere Dokumentationen entsprechend der Änderungen der in diesem Artikel beschriebenen Richtlinie. 

Weitere Informationen

Serveradministratoren sollten die Richtlinien in diesem Artikel anwenden, um sicherzustellen, dass Anwendungen in freigegebenen Hostingumgebungen isoliert sind. Diese Richtlinien gelten für das Hosten von ASP.NET unter Windows Server 2003 SP2 und höheren Versionen. Die Richtlinien betreffen Internetinformationsdienste (IIS) 6.0 bis 7.5. Viele der hier beschriebenen Aufgaben können unter Verwendung des IIS-Befehlszeilentools AppCmd.exe in IIS 7 und 7.5 und unter Verwendung von IIS-Verwaltungsskripts in IIS 6.0 automatisiert werden.

Einfügen von Anwendungen in separate IIS-Websites

In einer freigegebenen Hostingumgebung sollten Anwendungen in separate IIS-Websites eingefügt werden. Die Konfiguration ist zwischen Anwendungen besser isoliert, wenn sie auf separaten Websites gehostet werden. Darüber hinaus wird der .NET Framework-CLR-Host separat ausgeführt. Dies bietet eine zusätzliche Isolierung auf dieser Ebene. Um die einzelnen Anwendungen in separate Websites einzufügen, gehen Sie folgendermaßen vor:

Internetinformationsdienste 6.0 (Windows Server 2003 SP2)

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im linken Bereich den Knoten für den aktuellen Server.

  3. Klicken Sie mit der rechten Maustaste auf Websites, zeigen Sie auf Neu, und klicken Sie dann auf Website.

  4. Klicken Sie auf Weiter.

  5. Geben Sie einen eindeutigen Namen für die neue Website ein, und klicken Sie auf Weiter.

  6. Konfigurieren Sie die Websitebindungen für die Hostingumgebung.

  7. Geben Sie den physischen Pfad des Ordners, in dem die Anwendungsdateien gespeichert werden.

  8. Aktivieren Sie das Kontrollkästchen Skripts ausführen (z. B. ASP), und klicken Sie auf Weiter.

  9. Klicken Sie auf Fertig stellen. Die neue Website wird unter dem Knoten Websites angezeigt.

Internetinformationsdienste 7 (Windows Vista SP2 und Windows Server 2008 SP1) und Internetinformationsdienste 7.5 (Windows 7 und Windows Server 2008 R2)

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im Bereich Verbindungen den Knoten für den aktuellen Server.

  3. Wählen Sie den Knoten Websites, und klicken Sie dann im Bereich Aktionen auf Website hinzufügen.

  4. Geben Sie im Dialogfeld Website hinzufügen einen eindeutigen Namen für die neue Website ein. Geben Sie anschließend den physischen Pfad des Ordners ein, in dem die Anwendungsdateien gespeichert werden. Es wird standardmäßig ein neuer Anwendungspool erstellt, der denselben Namen wie die Website hat. Zudem wird die Website für die Verwendung dieses Anwendungspools konfiguriert. (Dies ist die empfohlene Konfiguration.)

  5. Konfigurieren Sie die Websitebindungen für die Hostingumgebung.

  6. Deaktivieren Sie das Kontrollkästchen Website sofort starten, um sicherzustellen, dass die Website erst dann verfügbar ist, wenn die hier beschriebenen Isolierungsrichtlinien ausgeführt wurden.

  7. Klicken Sie auf OK. Die konfigurierte Website wird im Bereich Verbindungen unter Websites angezeigt.

Einfügen von Anwendungen in separate IIS-Websites

In einer freigegebenen Hostingumgebung sollten Anwendungen in separate IIS-Websites eingefügt werden. Dadurch können Anwendungen in separaten Betriebssystemprozesse mit eindeutigen Identitäten isoliert werden. Dies bietet ein Maß an Isolierung von einem Standort zum anderen. (Im folgenden Abschnitt wird beschrieben, wie Anwendungspoolidentitäten für die Isolierung konfiguriert werden.)

Internetinformationsdienste 6.0 (Windows Server 2003 SP2)

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im linken Bereich den Knoten für den aktuellen Server.

  3. Klicken Sie mit der rechten Maustaste auf Anwendungspools, dann auf Neu erstellen, und anschließend auf Anwendungspool.

  4. Geben Sie einen eindeutigen Namen für den neuen Anwendungspool ein, und klicken Sie auf OK.

  5. Erweitern Sie den Knoten Websites.

  6. Klicken Sie mit der rechten Maustaste auf die Zielwebsite, und klicken Sie dann auf Eigenschaften.

  7. Klicken Sie auf die Registerkarte Basisverzeichnis.

  8. Wählen Sie unten im Dialogfeld im Feld Anwendungspool den neuen Anwendungspool.

  9. Klicken Sie auf OK.

Internetinformationsdienste 7 (Windows Vista SP2 und Windows Server 2008 SP1) und Internetinformationsdienste 7.5 (Windows 7 und Windows Server 2008 R2)

Wenn Sie die Schritte im Abschnitt "Einfügen von Anwendungen in separate IIS-Websites" ausgeführt haben, wird die neue Website automatisch in einen neuen, separaten Anwendungspool eingefügt. Wenn Sie jedoch eine vorhandene Website für die Verwendung eines neuen, separaten Anwendungspools konfigurieren, gehen Sie folgendermaßen vor:

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im Bereich Verbindungen den Knoten für den aktuellen Server.

  3. Wählen Sie den Knoten Anwendungspools.

  4. Klicken Sie im Bereich Aktionen auf Anwendungspool hinzufügen.

  5. Geben Sie einen eindeutigen Namen für den neuen Anwendungspool ein, und wählen Sie eine .NET Framework-Zielversion und einen Pipelinemodus.

  6. Klicken Sie auf OK. Der neue Anwendungspool wird in der Liste angezeigt.

  7. Erweitern Sie im Bereich Verbindungen den Knoten Websites.

  8. Wählen Sie die Website, die Sie in den zuvor in diesem Verfahren erstellten Anwendungspool verschieben möchten.

  9. Klicken Sie im Bereich Aktionen auf den Link Grundeinstellungen.

  10. Klicken Sie im Dialogfeld Website bearbeiten auf Auswählen.

  11. Wählen Sie in der Liste Anwendungspool den zuvor erstellten Anwendungspool.

  12. Klicken Sie auf OK.

Klicken Sie im Dialogfeld Website bearbeiten auf OK.

Konfigurieren von Anwendungspools für die Isolierung (Prozessidentität)

Adressenpools hosten Anwendungen und Websites in einem oder mehreren Windows-Prozessen. Die Identität, unter der der Prozess ausgeführt wird, ist konfigurierbar. In freigegebenen Hostingumgebungen sollte für jede Anwendung eine separate Identität vorhanden sein. Dadurch wird sichergestellt, dass jede Anwendung im Kontext eines eindeutigen Kontos ausgeführt wird. Dies ermöglicht eine ordnungsgemäße Isolierung, indem Dateisystem-verwaltete Zugriffssteuerungslisten (DACL) und die integrierten Funktionen für die Prozessisolierung des zu Grunde liegenden Betriebssystems verwendet werden. Gehen Sie folgendermaßen vor, um ein Benutzerkonto erstellen und diesem dann einen Anwendungspool zuzuweisen.

Internetinformationsdienste 6.0 (Windows Server 2003 SP2)

Erstellen eines lokalen Benutzerkontos für die Verwendung als Anwendungspoolidentität
  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im linken Bereich den Zweig Lokale Benutzer und Gruppen.

  3. Klicken Sie mit der rechten Maustaste auf den Knoten Benutzer, und klicken Sie dann auf Neuer Benutzer.

  4. Geben Sie einen eindeutigen Namen und ein sicheres Kennwort für das neue Benutzerkonto ein.

  5. Deaktivieren Sie das Kontrollkästchen Benutzer muss Kennwort bei der nächsten Anmeldung ändern.

  6. Aktivieren Sie das Kontrollkästchen Benutzer kann Kennwort nicht ändern.

  7. Klicken Sie auf Erstellen und dann auf Schließen.

  8. Wählen Sie im linken Bereich den Knoten Benutzer. Das neue Konto wird in der Liste angezeigt.

Konfigurieren Sie den Anwendungspool für die Verwendung des neuen lokalen Benutzerkontos.
  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im linken Bereich den Knoten für den aktuellen Server.

  3. Erweitern Sie den Knoten Anwendungspools.

  4. Klicken Sie mit der rechten Maustaste auf den Zielanwendungspool, und klicken Sie dann auf Eigenschaften.

  5. Klicken Sie auf die Registerkarte Identität.

  6. Wählen Sie die Optionsschaltfläche Konfigurierbar.

  7. Geben Sie den Benutzernamen und das Kennwort des neuen Kontos ein.

  8. Klicken Sie auf OK.

  9. Geben Sie das Kennwort in das Feld Kennwort bestätigen erneut ein, und klicken Sie anschließend auf OK.

Internetinformationsdienste 7 und 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 und Windows Server 2008 R2)

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

  2. Erweitern Sie im Bereich Verbindungen den Knoten für den aktuellen Server.

  3. Wählen Sie den Knoten Anwendungspools.

  4. Wählen Sie den Zielanwendungspool.

  5. Klicken Sie im Bereich Aktionen auf den Link Erweiterte Einstellungen.

  6. Setzen Sie im Abschnitt Prozessmodell die Eigenschaft Identität auf ApplicationPoolIdentity. Durch diese Einstellung wird automatisch eine eindeutige Identität für diesen Anwendungspool erstellt. In den folgenden Abschnitten können Sie diese eindeutige Identität verwendet, um besitzerverwaltete Zugriffssteuerungslisten (DACLs) für die Dateispeicherorte festzulegen, auf die die Anwendung Zugriff benötigt.

  7. Klicken Sie auf OK.

Konfigurieren von DACLs für Speicherorte für Anwendungsinhalte

Die besitzerverwaltete Zugriffssteuerungsliste (DACL) ist eine Liste mit Berechtigungen, die mit einem Objekt verknüpft sind und zur Steuerung des Zugriffs auf das Objekt verwendet werden können. Das Verwenden von DACLs zum Einschränken des Zugriffs auf Anwendungsinhalte hilft, die Isolierung zwischen Websites zu stärken, die auf demselben Webserver gehostet werden. Weitere Informationen zu ACLs und IIS-Identitäten finden Sie unter Sicherer Inhalt in IIS über Dateisystem-ACLs

Alle Versionen von IIS

  1. Öffnen Sie den Stammordner für die Websiteinhalte an einer Eingabeaufforderung oder in Windows Explorer.

  2. Verwenden Sie eine der folgenden Methoden, um Einträge für den Nicht-Administrator-Zugriff auf diesen Speicherort zu entfernen. (Dies umfasst die Gruppe "Benutzer").

    • Klicken Sie in Windows Explorer mit der rechten Maustaste, wählen Sie Eigenschaften, klicken Sie auf die Registerkarte Sicherheit, und ändern Sie dann die Zugriffssteuerungsliste.

    • Verwenden Sie an einer Eingabeaufforderung das Dienstprogramm icacls.exe (oder "cacls.exe" in ältere Versionen des Windows-Betriebssystems), um die Zugriffssteuerungsliste zu ändern.

  3. Fügen Sie für die Prozessidentität hinzu, die Sie für die Website ausgewählt haben, einen neuen Eintrag hinzu.

  4. Geben Sie der neuen Identität Lese- und Schreibzugriff auf den Ordner.

Wenn es bestimmte Ordner gibt, die von der Anwendung Schreibberechtigungen benötigen (z. B. ein Ordner "Uploads"), gehen Sie folgendermaßen vor:

Internetinformationsdienste 6.0 (Windows Server 2003 SP2)

  1. Klicken Sie in Windows Explorer mit der rechten Maustaste, wählen Sie Eigenschaften, klicken Sie auf die Registerkarte Sicherheit, und fügen Sie den Zugriff Ändern für die Prozessidentität hinzu.

  2. Für Ordner, die statische Inhalte (Bilder, Textdateien usw.) enthalten, gehen Sie folgendermaßen vor:

    1. Öffnen Sie den Internetinformationsdienste-Manager (IIS).

    2. Klicken Sie im linken Bereich mit der rechten Maustaste auf den entsprechenden Ordnernamen, und klicken Sie anschließend auf Eigenschaften.

    3. Klicken Sie auf die Registerkarte Verzeichnis.

    4. Wählen Sie in der Liste Ausführungsberechtigungen die Option Keine.

Internetinformationsdienste 7 und 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 und Windows Server 2008 R2)

  1. Klicken Sie in Windows Explorer mit der rechten Maustaste, wählen Sie Eigenschaften, klicken Sie auf die Registerkarte Sicherheit, und fügen Sie den Zugriff Ändern für die Prozessidentität hinzu.

  2. Fügen Sie für Ordner, die statische Inhalte (Bilder, Textdateien usw.) enthalten, einen Dateieintrag "web.config" für den Speicherort ein, der die Skriptberechtigung in der Einstellung "AccessPolicy" nicht zulässt: <system.webServer> <handlers accessPolicy="Read,Write" /> </system.webServer>

Konfigurieren eines Speicherort für den Ordner "Temporary ASP.NET Files" und Festlegen von DACLs pro Website

ASP.NET erfordert einen Speicherort auf dem Server, um temporäre Daten, z. B. kompilierte Dateien, zu speichern. Dies ist in der Regel der Ordner "Temporary ASP.NET Files". Dieser Ordner befindet sich standardmäßig unter dem Ordner, in dem .NET Framework installiert ist. Das Zuordnen eines anderen, temporären Speicherorts für die einzelnen Websites und das einzelne Sichern der Ordner hilft, die Isolierung zwischen Websites zu stärken, die auf demselben Webserver gehostet werden. Weitere Informationen zum Ordner "Temporary ASP.NET Files" finden Sie unter Dynamische ASP.NET-Kompilierung.

Konfigurieren eines anderen Speicherorts für den Ordner "Temporary ASP.NET Files" für einzelne Websites

  1. Erstellen Sie einen neuen Ordner für jede Website, um die temporären ASP.NET-Dateien für die einzelnen Websites zu speichern. Es ist besser, ein nicht zum System gehörendes Laufwerk zu verwenden, um die temporären Dateien zu speichern.

  2. Fügen Sie in der Datei "root web.config" oder "applicationHost.config" des Servers eine Einstellung hinzu, um auf den Speicherort für den neues Ordner für die jeweilige Website zu zeigen, indem Sie ein Element <location> wie im Folgenden verwenden: <configuration> <location path="path"> <system.web> <compilation tempDirectory="temp-files-path" /> </system.web> </location> <!-- usw. --> </configuration>

Festlegen von entsprechenden DACLs für den Speicherort des Ordners "Temporary ASP.NET Files"

  1. Verwenden Sie eine Eingabeaufforderung oder Windows Explorer, um Berechtigungen für alle Nicht-Administrator-Zugriffe auf diesen Speicherort zu entfernen. (Dies umfasst die Gruppe "Benutzer").

  2. Fügen Sie für die Prozessidentität, die Sie zuvor für diese Website gewählt haben, einen neuen Eintrag hinzu, und gewähren Sie dieser Identität den Zugriff Ändern für den Ordner.

Entfernen vertraulicher Konfigurationsdaten aus Stammkonfigurationsdateien

Die Dateien "web.config" der Anwendung befinden sich im Inhaltsordner der bereitgestellten Anwendung. Obwohl ASP.NET die Anwendungsdatei "web.config" nicht bedient, wenn es praktisch ist, ist es besser, sicherheitsrelevante Informationen, z. B. Computerschlüsseleinstellungen und Verbindungszeichenfolgen, in einer Konfigurationsdatei zu speichern, die sich außerhalb des Anwendungsspeicherorts befindet. Dies bietet zusätzlichen Schutz gegen die Offenlegung von Informationen.

Internet-Informationsdienste 6.0 (Windows Server 2003 SP2)

Das Speichern sicherheitsrelevanter Konfigurationsinformationen in der Stammdatei "web.config" ist keine gute Option für das Isolieren von Daten zwischen unterschiedlichen Websites, da alle Websites Lesezugriff auf diese Datei haben. Daher sollten Sie auf IIS 6 vertrauliche Konfigurationsdaten in der Datei "web.config" für Ihre Anwendung speichern. Dadurch können Websites vertrauliche Konfigurationsdaten voneinander isolieren. In diesem Fall verlässt sich die Anwendung auf die ASP.NET-Verteidung, um zu verhindern, dass die Anwendungsdatei "web.config" bedient wird, und um sicherzustellen, dass vertraulicher Informationen nicht offengelegt werden.

Internetinformationsdienste 7 und 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 und Windows Server 2008 R2)

Verschieben Sie für IIS 7 und höhere Versionen die vertrauliche Konfiguration, die sich in der IIS-Datei "applicationHost.config" befinden, in ein Element <location>, das die Konfiguration der Website zuordnet, für die sie gilt. Weitere Informationen hierzu finden Sie unter How to Use Locking in IIS 7.0 Configuration (Verwenden von Sperren in der IIS 7.0-Konfiguration). Microsoft dankt den folgenden Personen, die uns geholfen haben, Kunden zu schützen:

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.