Sessions zerstören beim Login

WoA-Ian

Grünschnabel
Morgen,
da auf euch ja schon immer in größter Not verlass war, wende ich mich erneut Hilfesuchend an euch^^

Aktuell versuche ich grad ein sicheres Loginsystem zu erstellen. Und bin bis zu dem Punkt mit dem einloggen eigentlich ganz gut vorran gekommen :)

Also momentan wird die Session bei jeder Aktion auf ihre gültigkeit überprüft, was auch ohne Probleme funktioniert. Allerdings habe ich eine Schwachstelle beim Login festgestellt.
Sofern man die Seite mit dem gleichen Browser betritt und eine gültige Session hat, wird man ja automatisch wieder angemeldet. Jedoch funktioniert, dass ganze nur mit dem gleichen Browser. Wenn man nun z.b von Opera zu FF wechselt, erkennt er ja keine gültige Session und bietet einem wieder die Möglichkeit sich neu einzuloggen, sodass man am Ende 2 aktive Sessions hat.

Meine Idee besteht nun also darin, die aktuelle Session-Id an die User-Id zu binden und in eine DB zu schreiben, beim öffnen der gleichen User-id, soll die alte Session vom Server gelöscht werden.

Gibt, es eine Möglichkeit mit session_destroy() geziehlt eine Session mit einer festgelegten ID vom Server zu killen? Oder kann ich dieses Problem auf eine andere Art lösen.

Ich hoffe mal ihr habt das Problem verstanden und könnt mir wieder mal aus der Klemme helfen :)
lg Ian
 
Erstell doch eine Tabelle mit session und speicher die session_id() darin dazu solltest du bei jedem mal (nicht nur beim Login) ob die session in der Datenbank == session_id() des aktuellen users ist und wenn nicht dann soll er sich neu einloggen.

Dann sollte es eigentlich funktionieren

gruß
 
Morgen,
die Idee hatte ich auch mal, aber das würde auf Dauer zuviele Abfragen mit der Db führen, weil man ja bei jedem Seitenaufruf eine Anfrage stellen müsste. So habe ich das ganze schön über eine vorhandene Session gelöst. Das einzigste was michvon dem Erfolg abhällt, ist das löschen der alten Session vom Server beim einloggen über einen anderen Browser.
Alternativ wollte ich einfach eine neue Session mit der alten Id starten, aber auch das brachte nicht den genwünschten erfolg :(

Naja vlt gibt es ja noch einen weg ohne DB und ich bin nur blind. :-(
lg Ian
 

Neue Beiträge

Zurück