Hallo Leute,
ich werde in meinem Projekt nach erfolgreichem Logging auf die nächste Seite
witergeleitet und die Url enthält meine Personalnummer Z00002 siehe URL
http://XXXX.xxxx03.xxxx.net/OnlineCheck1.aspx/loginid=Z00002
Mein Problem ist wenn ich her gehe und die Personalnummer einer anderen Person
als loginid in die URL schreib wird mir dessen Seite gezeigt!
Wie kann ich verhindern dass eingeloggte Personen durch den Eintrag anderen Personalnummern auf andere Seiten zugreifen können.
Danke,
FerryG
Hallo FerryG,
das ist ein grundsätzliches Problem, wenn Session-Daten über die URL übertragen werden.
Prinzipiell kann man aber davon ausgehen, dass eine Session auch nur auf einem PC läuft. (Wenn nicht, dann ists wirklich verdammt schwer). Deshalb kannst Du folgendermaßen vorgehen:
Beim erfolgreichen Login, und bevor Du auf Deine eigentliche Startseite navigierst, speicherst Du in den Session-Daten (und jetzt NICHT Url) auch die IP-Adresse des Clients. Bei jeder Seite, die ein Login benötigst überprüfst Du, ob zu der Personalnummer immernoch die selbe IP-Adresse vorherrscht, wenn nicht, verwehrst Du dessen Zutritt.
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Wenn ich einen Login in meine Seite mache, benutze ich immer die Funktion von .Net.
Da kannste in der web.config die Formularauthentifizierung einstellen.
Am bessten du suchst mal nach System.Web.Security und Formularanmeldung, oder so.
Du kannst dann danach in deiner Seite abfragen wer sich angemeldet hat und darauf reagieren.
Hallo norman_timo,
wie kann ich die IP-Adresse rauslesen? Ansonsten ist das eine Klasse Lösung...
Hallo FerryG,
die IP-Adresse solltest Du mittels:
Request.UserHostAddress;
bekommen 😉
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Moin,
eine etwas andere Lösung wäre folgende:
Ich nehme an, dass Du irgendwo Personalnummern mit Login´s verbindest (zb Datenbank).
Da Du Security des .NET Frameworks nutzt wirst Du innerhalb Deiner Session eindeutig indentifiziert.
Context.User.Identity
Somit kannst Du ordentlich prüfen ob der aktuell authentifizierte auch der User ist, denn Du mit Deiner Personalnummer erwartest. Das prüfen der IP geht zwar, aber wirklich schön ist es nicht (und läst sich natürlich auch faken).
Enjoy
Christian Arnold