Gewusst wie: Sichern einer ASP.NET-Anwendung auf einem freigegebenen Server
Aktualisiert: November 2007
Bei einem freigegebenen Webserver mit mehreren Anwendungen für verschiedene Kunden muss zusätzlich dafür gesorgt werden, dass jede Anwendung sowie die Anwendungsdaten vertraulich gesichert werden, sodass sie gegenüber anderen Anwendungsbenutzern auf dem Server privat bleiben. In der folgenden Prozedur werden ausführlich die erforderlichen Schritte beschrieben, um eine ASP.NET-Anwendung auf einem freigegebenen Server zu sichern.
So sichern Sie eine ASP.NET-Anwendung auf einem freigegebenen Server
Hosten Sie die Webanwendung unter Windows Server 2003. Vergewissern Sie sich, dass die Dateien für die Anwendung auf einem Laufwerk gespeichert sind, das mit dem NTFS-Dateisystem formatiert wurde.
Da alle ASP.NET-Anwendungen unter Windows 2000 und Windows XP Professional mit einer einzigen Prozessidentität (dem lokalen ASPNET-Konto) ausgeführt werden, können Sie eine Anwendung nicht wirklich isolieren, außer Sie führen sie unter Windows Server 2003 aus.
Wählen Sie auf dem Webserver im Snap-In Computerverwaltung (im Ordner Verwaltung) unter System die Option Lokale Benutzer und Gruppen aus. Fügen Sie einen neuen Benutzer hinzu. Dieser Benutzer ist die Identität des Anwendungspools, die auch als die Prozessidentität für die ASP.NET-Anwendung bezeichnet wird.
Fügen Sie im Ordner Gruppen unter Lokale Benutzer und Gruppen der Gruppe IIS_WPG die Identität hinzu, die Sie gerade für die Anwendung erstellt haben. So wird sichergestellt, dass die neue Identität über die notwendigen Berechtigungen verfügt, um als Identität für einen Anwendungspool ausgeführt zu werden.
Mithilfe des Internetinformationsdienste-Managers (IIS-Manager) auf dem Webserver können Sie einen Anwendungspool für die Anwendung erstellen.
Öffnen Sie die Eigenschaftenseite für den neuen Anwendungspool, und wählen Sie die Registerkarte Identität. Legen Sie die Identität auf Konfigurierbar fest, und geben Sie den Benutzernamen und das Kennwort des zuvor erstellten Anwendungspools ein.
Öffnen Sie im Ordner Websites des Internetinformationsdienste-Managers (IIS-Manager) die Eigenschaftenseite für die Anwendung. Legen Sie den Anwendungspool der Webanwendung auf den Anwendungspool fest, den Sie gerade erstellt haben. Sie müssen möglicherweise auf die Schaltfläche Erstellen klicken, damit Sie die Webanwendung als eine Anwendung erstellen, sofern Sie dies nicht bereits getan haben.
Sie können mehrere Anwendungen in einem Anwendungspool platzieren. Stellen Sie sicher, dass nur Anwendungen in einem Anwendungspool sind, die Daten gemeinsam verwenden können, z. B. mehrere Anwendungen für einen einzelnen Kunden.
Erstellen Sie ein Verzeichnis für den Anwendungspool, der die temporären Dateien für die Anwendungen im Pool enthalten wird. Geben Sie in den Dateien Web.config aller Anwendungen im Anwendungspool dieses neue Verzeichnis mithilfe des tempDirectory-Attributs des compilation-Konfigurationsabschnitts als temporäres Verzeichnis an. Beispiel:
<configuration> <system.web> <compilation tempDirectory="C:\WebApps\AppPool1_Temp" /> </system.web> </configuration>
Im Windows-Dateisystem. Legen Sie die Zugriffssteuerungslisten (ACLs) für die Sicherheit so fest, dass die Anwendungspoolidentität und alle imitierten Identitäten (siehe Identitätswechsel in ASP.NET) für die Anwendung sowohl die erforderlichen Zugriffsrechte für Dateien und Unterverzeichnisse haben, die die Anwendung bilden, als auch uneingeschränkten Zugriff auf das zuvor erstellte temporäre Verzeichnis. Entfernen Sie die IIS_WPG-Gruppe aus diesen ACLs. Stellen Sie sicher, dass andere Benutzer auf dem Server keinen Zugriff auf diese Dateien und Ordner haben, außer wenn dies erforderlich ist. Dazu gehört auch das Entfernen der allgemeinen Gruppen, z. B. der Everyone-Gruppe oder der Users-Gruppe. Vergewissern Sie sich, dass alle imitierten Identitäten in den in Erforderliche Zugriffssteuerungslisten für ASP.NET aufgelisteten ACLs enthalten sind.
Sie können darüber hinaus die Sicherheit der Anwendung verbessern, indem Sie vertrauliche Informationen in der Datei Web.config mithilfe von geschützter Konfiguration verschlüsseln. Weitere Informationen finden Sie unter Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration.
Siehe auch
Konzepte
Erforderliche Zugriffssteuerungslisten für ASP.NET