Benutzer mit den meisten Antworten
Nur login mit https

Frage
-
ich habe eine Webanwendung bei der alle Seiten über https übertragen werden - sonst wird in der Global.asax ein Redirect ausgeführt.
Jetzt möchte ich aber nur noch die Login-Daten und ggf. die Registrierung verschlüsselt übertragen und alle anderen Seiten können unverschlüsselt bleiben. Wie mache ich das am besten?
Es gibt ein eigenes Logincontrol das auf jeder Seite angezeigt wird und die zwei Zustände kennt (eingeloggt/anonym). Danach wird ein Session-cookie gesetzt. Das soll so bleiben (also keine Weiterleitung auf eine eigene Login-Seite).
Dank und Gruß
Oli
.
Antworten
-
Hallo Frederic (oder auch Oli),
Jetzt möchte ich aber nur noch die Login-Daten und ggf. die Registrierung verschlüsselt übertragen und alle anderen Seiten können unverschlüsselt bleiben. Wie mache ich das am besten?
da die Session nicht zwischen der per HTTP und der per HTTPS aufgerufenen Anwendung geshart werden kann, wäre das bspw. in etwa so:
- Senden der Logindaten an einen Handler https://server/LoginHandler.ashx
- Der Handler prüft die Daten, setzt ein Token, speichert dieses bspw. beim Datensatz des Users in einer Datenbank und leitet bei Erfolg auf http://server/LoginHandler.ashx um
- Hier wird nur noch das Token genommen und mit dem in einer Datenbank hinterlegten Wert verglichen und dann die entsprechende Sessionvariable gesetzt
Das kann per normalen GET/POST Request passieren aber auch per Ajax/jQuery.
Wie man das letztendlich löst (Handler, Ajax, IFrame, ...), bleibt einem selbst überlassen. Wichtig ist nur, dass man nach dem Login auf https dann auch der "normalen", per http Aufruf erzeugten Session, mitteilt, dass der User nun angemeldet wurde.
Aber wirklich sicherer wird deine Anwendung damit auch nicht.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Freitag, 21. Januar 2011 12:01
- Als Antwort markiert Frederic Luchting Freitag, 21. Januar 2011 12:48
Alle Antworten
-
Hallo Frederic (oder auch Oli),
Jetzt möchte ich aber nur noch die Login-Daten und ggf. die Registrierung verschlüsselt übertragen und alle anderen Seiten können unverschlüsselt bleiben. Wie mache ich das am besten?
da die Session nicht zwischen der per HTTP und der per HTTPS aufgerufenen Anwendung geshart werden kann, wäre das bspw. in etwa so:
- Senden der Logindaten an einen Handler https://server/LoginHandler.ashx
- Der Handler prüft die Daten, setzt ein Token, speichert dieses bspw. beim Datensatz des Users in einer Datenbank und leitet bei Erfolg auf http://server/LoginHandler.ashx um
- Hier wird nur noch das Token genommen und mit dem in einer Datenbank hinterlegten Wert verglichen und dann die entsprechende Sessionvariable gesetzt
Das kann per normalen GET/POST Request passieren aber auch per Ajax/jQuery.
Wie man das letztendlich löst (Handler, Ajax, IFrame, ...), bleibt einem selbst überlassen. Wichtig ist nur, dass man nach dem Login auf https dann auch der "normalen", per http Aufruf erzeugten Session, mitteilt, dass der User nun angemeldet wurde.
Aber wirklich sicherer wird deine Anwendung damit auch nicht.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Freitag, 21. Januar 2011 12:01
- Als Antwort markiert Frederic Luchting Freitag, 21. Januar 2011 12:48
-
Hallo Stefan,> da die Session nicht zwischen der per HTTP und der per HTTPS> aufgerufenen Anwendung geshart werden kann, wäre das bspw. in etwa so:Danke! So klar habe ich das bisher noch auf keiner Seite gelesen.Ich finde immer nur murksige workarounds. Dein Vorschlag bringt esauf den Punkt (leicht gekürzt):> * Senden der Logindaten an einen Handler> * speichert dieses im Datensatz des Users in einer Datenbank> * weiterleiten> Aber wirklich sicherer wird deine Anwendung damit auch nicht.Wird sie denn unsicherer?Ich will ja auf unsicheres http umstellen, da nichts sensiblesdurch die Leitung geht. Nur die Login Daten sollte man nichtbelauschen können. Danach reicht das verschlüsselte Session-Cookie.Vielen Dank und GrußOli.
-
Hallo Frederic (oder auch Oli, was nun eigentlich? :),
Wird sie denn unsicherer?
Ich will ja auf unsicheres http umstellen, da nichts sensiblesdurch die Leitung geht. Nur die Login Daten sollte man nichtbelauschen können. Danach reicht das verschlüsselte Session-Cookie.das Session-Cookie lässt sich aber "entführen". Ich sags mal so: Im Normalfall macht das kaum jemand, auch weils in den meisten Fällen uninteressant wäre, es zu kapern. Wenn Du aber eh schon auf SSL setzt, hat das sicher seinen Grund.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community