none
Nur login mit https RRS feed

  • 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
    .

    Mittwoch, 12. Januar 2011 17:22

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
    Mittwoch, 12. Januar 2011 18:51
    Moderator

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
    Mittwoch, 12. Januar 2011 18:51
    Moderator
  • 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 es
    auf 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 sensibles
    durch die Leitung geht. Nur die Login Daten sollte man nicht
    belauschen können. Danach reicht das verschlüsselte Session-Cookie.
     
    Vielen Dank und Gruß
     
    Oli
    .
     
    Mittwoch, 12. Januar 2011 19:25
  • Hallo Frederic (oder auch Oli, was nun eigentlich? :),
    Wird sie denn unsicherer?
    Ich will ja auf unsicheres http umstellen, da nichts sensibles
    durch die Leitung geht. Nur die Login Daten sollte man nicht
    belauschen 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
    Mittwoch, 12. Januar 2011 19:51
    Moderator