Jens Holzkämper: Sessionbasiertes Login - Ablauf der Session

Beitrag lesen

Tach,

wo speicherst du das Geheimnis, dass du in den Cookie reinschreibst?

What? Klingt ja fast so als ob da deine Kreditkartennummer drin steht :D.
Es muss etwas sein, dass den User eindeutig identifiziert. Sagen wir mal seine User id. Was sagst du, dann könnte sich jeder als dieser USer tarnen, wenn er das Cookie fälscht? Richtig, also muss noch irgendetwas einmaliges in das Cookie. Etwas das man nicht erraten könnte und das sich am besten noch ständig ändert. Wie wärs mit der Angabe des "last Login". Die Info speichert man in der Userdatenbank.

ein Angreifer braucht jetzt also nicht mehr das Passwort des Users, sondern nur noch den letzten Einlogzeitpunkt, das läßt sich doch schon sehr viel leichter Brute-Forcen oder vielleicht reicht es ja sogar nur die aufgerufenen URLs des Users zu haben (ok, Passworte und HTTP ohne S am Ende vertragen sich eh nicht), um den Zeitpunkt ziemlich gut abschätzen zu können. Ein Zufallsstring wäre da dann wohl doch besser.

Plus dem Problem, dass man für die Daten dann wieder ein komplett eigenes Sessionhandling-Konzept bauen muss; ich vermute zumindest, dass der Cookie nicht ewig gültig sein soll.

Wieso nicht ewig? Mir drängt sich die Frage von Dedlfix auf "wie lange darf der User Telefonieren?". Wenn er seinen Computer einen Monat durchlaufen lässt und dann erst das Formular abschicken möchte...soll er doch.

Dann kann ich auch gleich einfach Sessions serialisieren und den User nie ausloggen. Es macht halt durchaus Sinn, einer Authentifizierung nur einen gewissen Zeitrahmen lang zu trauen und du entwirst gerade ein System, bei dem sich der User nur ein einziges Mal authentifizeren muss und das obwohl die Lösung von ichbinich viel eleganter ist.

Ein eigenes Sessionhandling? Das Problem verstehe ich nicht.

Sessionhandling im Sinne von Daten, hier das gemeinsame Geheimnis, abspeichern und nach Ablauf eines vorgegebenen Zeitraums verwerfen.

if( formular.valide() ) //--- PRüfen ob Formulardaten valide sind
if( !$_SESSION['login'] == true )

  
Zumindest das würde ich aus Performancegründen umdrehen.  
  
mfg  
Woodfighter