Frage

Ich schreibe eine ASP.Net MVC-Anwendung, die NTLM-Authentifizierung verwendet, so dass die Nutzer müssen nicht mit der Website registrieren. Wenn ich deaktiviert anonymen Zugriff haben, kann ich User.Identity.Name als Eigentum Schlüssel in der Datenbank. Was ich möchte, ist zu tun, der Lage sein, eine Suche wie

zur Ausgabe von
from station in db.stations where station.user == username select *;

Ist das genug, um zuverlässig zu wissen, wer der Benutzer ist, oder gibt es irgendwie einen bösen Benutzer die Namen Zeichenfolge fälschen könnte und Zugriff auf Daten, dass sie nicht?

War es hilfreich?

Lösung

Der Name in der Sitzung gefüllt ist, so müßte der Angreifer auf den Session-Cookie fälscht die Sitzung des Benutzers kapern und den Zugang zu bekommen. Der ASP.NET-Session-Cookie wird verschlüsselt dieses, um zu verhindern, aber Sie sollten auf jeden Fall die Sitzung haben ablaufen, so dass ein entschlossener Angreifer kann nicht eine unbegrenzte Zeit damit verbringen, um die Verschlüsselung zu brechen. Einstellen des Cookies Httponly kann auch ein schädliches Skript im Browser verhindern, dass von der Cookie-Zugriff.

Hier ist ein Referenz für Best Practices für eine ASP-Sicherung. NET 2.0-Website. Vieles davon ist noch anwendbar, sondern müssen möglicherweise MVC übersetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top