2009-07-08 6 views
5

Ich habe Assembly Binding-Fehler aufgrund unzureichender Berechtigungen für den temporären ASP.NET-Dateien-Ordner.Stellt der Benutzer, der Berechtigungen in den temporären Ordner ASP.NET-Dateien schreibt, irgendwelche Sicherheitsprobleme auf?

Die Anwendung verwendet (web.config) Formularauthentifizierung mit Impersonate = True und IIS Windows Integrated Authentication.

Nach ASP.NET Identity Matrix bedeutet dies, dass die WindowsIdentity in Domain \ UserName aufgelöst wird und die WindowsIdentity gemäß ASP.NET Required Access Control Lists (ACLs) Lese-/Schreibberechtigungen für den Ordner "Temporäre ASP.NET-Dateien" erfordert.

Mit dem Fusion-Protokoll-Viewer kann ich bestätigen, dass der Assembly-Bindungsfehler aufgrund von Domain \ UserName (gehört zur Gruppe "Users" in Sicherheit) nur Leseberechtigungen für diesen Ordner, aber keine Schreibberechtigungen.

Die Fragen sind:

Gibt es Schreibberechtigungen für das temporäre ASP.Net Files Ordner zuweisen irgendwelche Auswirkungen auf die Sicherheit?

Wird eine solche Änderung der Serverkonfiguration häufig verwendet? Wenn nicht, warum würde WindowsIdentity für diese Kombination von web.config-Einstellungen zu Domain \ UserName auflösen - oder sollte diese Kombination in diesem Kontext nicht verwendet werden?

Hinweis: Das Problem tritt nur auf, wenn ein Benutzer ohne Administratorrechte als erster die Seite aufruft. Wenn die Assembly bereits in temporären ASP.NET-Dateien kompiliert und gespeichert wurde, weil ein Administrator die Seite aufgerufen hat, treten für nachfolgende Benutzer keine Probleme auf. Ich möchte die Baugruppen NICHT im GAC platzieren.

+0

Ist dies IIS6 oder IIS7? – Kev

Antwort

1

ASP.NET erfordert Schreibberechtigung für den temporären ASP.NET-Dateien-Ordner, es sollte kein Sicherheitsrisiko sein, vorausgesetzt, Sie erteilen nur diesem Ordner Berechtigungen und nicht höher, da er im Ordner C: \ Windows liegt.

MSDN article about securing ASP.NET applications empfiehlt, dem temporären Kompilierungsverzeichnis die volle Kontrolle über die ASP.NET-Prozessidentität zu erteilen. Ich habe den entsprechenden Abschnitt zitiert:

Standardmäßig werden temporäre Dateien erstellt und im folgenden Verzeichnis erstellt:

% winnt% \ Microsoft.NET \ Framework {Version} \ Temporary ASP.NET Files

Sie können den Speicherort pro Anwendung mit dem tempDirectory-Attribut angeben, obwohl dies keinen Sicherheitsvorteil bietet.

Hinweis: Die für das Element angegebene ASP.NET-Prozessidentität erfordert Vollzugriffsberechtigungen für das temporäre Kompilierungsverzeichnis.

+0

(Sie müssen "msdn" an der Vorderseite des Links hinzufügen.) Ja, aber in diesem Fall bedeuten die web.config-Einstellungen, dass die DOMÄNE \ Benutzer (konfigurierter Identitätswechsel) Schreibzugriff erfordert und die Frage war speziell über Welche Sicherheitsimplikationen könnte das haben? Der ASP.NET-Prozess wird nicht als Teil dieser Assemblybindung dargestellt. –

Verwandte Themen