[PHP] Login sicher machen?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Terrorbeat, 26. November 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. November 2006
    Login sicher machen?

    HI

    ich zerbreche mir schon seit tagen den kopf wie man einen login sicher gestallten kann ohne IP adressen zu verwenden den die wechseln ja ständig.

    Immoment habe ich es in etwa so:
    der user logt sich ein und bekommt in die SESSION ein einmaligen code in hash vorm und die userID diese wird auch in die datenbank gespeichert. So kann man ohne das PW in die session zu speichern den user erkennen. doch wie kann ich verhindern das die SESSION in andere hände kommt z.b mit link übergabe und dann als dieser user erkannt wird?
     
  2. 26. November 2006
    AW: Login sicher machen?

    Session via Link übergeben ist ziemlich unsicher... man denka da an Internetcaffees und sowas.

    Am besten dazu geeignet sind Cookies.
    Les bei PHP.net einfach ein wenig über das Thema Cookies ein.
     
  3. 26. November 2006
    AW: Login sicher machen?

    kannst die session ja auch noch an die IP binden, und wenn die IP die beim Login war sich von der aktuellen unterscheidet -> session_destroy(); ^^
     
  4. 26. November 2006
    AW: Login sicher machen?

    Was recht gut funktioniert ist folgendes :

    Der User bekommt neben seine Session ID, noch ein "passwort" in eine Session Variable geschrieben, also z.B. Session Variable pw = abc.

    Wenn jetzt der user versucht auf ein pw geschützen Berreich zu kommen, gibt es eine Abfrage :

    <?php
    if ($pw != "abc")
    {
    die ("falsches Passwort");
    }
    ?>

    So kann der User nur auf die Seite, wenn er eine gültige Session hat
     
  5. 26. November 2006
    AW: Login sicher machen?

    Bei mir wird eine Funktion wie SessionCheck() aufgerufen.^^ Sie tut nichts weiter als zu überprüfen ob die IP des Nutzers mit der IP übereinstimmt, die die Session erstellt hat. Dann beschränke ich die Laufzeit einer Session auf ca 15min oder länger (je nach Anwendungsgebiet), bei einer Interaktion mit der Webseite verlängert sich die Session immer wieder. So dass der Nutzer nach 15min Nichts tun automatisch ausgeloggt wird. Auch ist es vorteilhaft die SessionID ausschließlich im Cookie zuspeichern und nicht per GET zu übergeben.

    Man könnte dies noch erweitern, indem man beim Erstellen der Session ein Cookie mit einem Hashwert erzeugt. Bei jedem Aufruf überprüft die Session ob das Cookie gesetzt ist. (Also eine Art SessionvalidierungsID^^)

    Das Passwort selbst würde ich nicht in der Session speichern. (Ich würde es generell nirgendwo speichern.^^ - nur als md5 in der DB) Meiner Meinung nach reicht die UserID und eine Variable wie loggedin = true aus.

    Du willst die IP nicht überprüfen, da diese ständig wechselt? Aber immer wenn die IP wechselt, trennt der Nutzer doch (bewusst/unbewusst) die Internetanbindung. Also weis er, dass er nicht mehr eingeloggt ist. (Ich rede vom normal Fall, kein Proxy-Gedöns.) Es ist also durchaus legitim, den Benutzer auszuloggen.

    Du kannst eine Art CookieLogin schreiben (was ja bei den meisten Foren verwendet wird) aber ich würde nicht die Session länger als eine IP gültig belassen. (geile Zeitangabe) Mit dem Cookielogin könntest du den Nutzer automatisch wieder einloggen lassen, als ob er nie weg gewesen wäre. Eine wechselnde SessionID beugt einem Klauen derselbigen vor, da eine geklaute SessionID mit hoher Wahrscheinlichkeit bereits ungültig ist. (Deshalb auch aller 15min nichts tun Session zerstören und neue ID vergeben.^^)

    greetz blackbone
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.