Meine Herren!
Soweit ok, aber ich habe etwas Sicherheitsbedenken vor allem wenn ein User in einem Internetcafe ist.
Internetcafé-Nutzer sind einem erhöhten Sicherheitsrisiko ausgesetzt und die Café-Betreiber wissen darum und haben in der Regel spezielle Software laufen, die automatisch dafür sorgt, dass die Nutzer keine Spuren hinterlassen. Zumindest war das in den Cafés so, in denen ich bisher war. Ob es eine Auflage oder Richtlinie gibt weiß ich nicht.
Wie löst ihr solche Probleme?
Das Problem stellt sich gar nicht oder es löst sich von selbst. Eine Session wird heute üblicherweise über einen Cookie wiedererkannt. Dieser Cookie sollte eine beschränkte Lebensdauer haben. Bei jedem Seitenaufruf kannst du das Verfallsdatum des Cookies auf t + 60 Minuten Setzen. Wenn das Cookie nicht mehr gültig ist, wird es vom Browser nicht mehr übertragen und die Webseitensitzung kann nicht mehr fortgesetzt werden.
Auf dem Server liegen allerdings weiterhin die Session-Daten, die jetzt unerreichbar sind, weil niemand mehr die SessionID kennt. Diese Daten sind also Müll. AFAIK wird dieser Datenmüll von den Webservern automatisch irgendwann gelöscht oder sie lassen sich so konfigurieren, dass das passiert.
Linuchs und Tom wollten dir vermutlich einen Heartbeat empfehlen. Das ist ein regelmäßiges Signal, dass der Browser an den Server schickt, damit der Server weiß, der Benutzer hat die Seite noch geöffnet. Davon würde ich dir abraten, ich sehe nicht, wie das zur Problemlösung beiträgt, und es kann im schlimmsten Fall sogar noch Schaden anrichten. Zum Beispiel kann es bei unvorsichtiger Programmierung passieren, dass besagtes Session-Cookie nie seine Gültigkeit verliert und als Seiteneffekt wird die Sitzung künstlich am Leben gehalten.
Deine Sitzungen sind offenbar mit Benutzer-Kontos verknüpft, eine weitere Sicherheitsmaßnahme könntest du schaffen, indem du dem Benutzer die Möglichkeit gibst, die Sitzungen die mit seinem Konto assoziiert sind, selbst zu verwalten. Weil Session-IDs für einen solchen Fall wenig aussagekräftig sind, werden die Sitzungen häufig mit einem Fingerabdruck des Endgeräts und einem Zeitpunkt präsentiert. Der Nutzer kriegt dann examplarisch so etwas zu sehen:
- iOS 6 - Safari 7.1 - letzte Aktivität: vor 7 Stunden
- Windows - Firefox 35 - letzte Aktivität: vor 3 Wochen
Google bietet so eine Möglichkeit zum Beispiel an, siehe: https://support.google.com/mail/answer/45938
“All right, then, I'll go to hell.” – Huck Finn