Hier nochmal eine zusammenfassende Beschreibung der Implementierung, da das ja etwas verstreut ist.
Bisher war die Lebensdauer des Cookies hartcodiert auf 3 Stunden festgelegt. Dies haben wir so von LEPTON übernommen. Die auf dem Server (php.ini) eingestellte Session-Lebensdauer wurde weder geändert noch berücksichtigt.
Dieses Verhalten ist jetzt so geändert, daß die Cookie-Lebensdauer auf die Session-Lebensdauer gesetzt wird. Zudem wird die Cookie-Lebensdauer bei jedem Zugriff zurückgesetzt - vorher war nach den 3 Stunden Schluß, auch wenn man die ganze Zeit aktiv war.
Im Backend sieht man jetzt unten rechts einen Countdown, der die verbleibende Sessionzeit anzeigt.

- 2015-05-07 18_29_45-BlackCat CMS » Administration - PAGES.png (3.48 KiB) 19745 mal betrachtet
Die Hintergrundfarbe ändert sich 5 Minuten vor Ablauf der Session von neutral auf rot. 30 Sekunden vor dem Ablauf der Session-Laufzeit wird ein Dialog geöffnet, der vor dem drohenden Rauswurf warnt. Hier hat man jetzt zwei Optionen: Angemeldet bleiben oder Abmelden. Reagiert man nicht, wird man nach Ablauf des Countdowns abgemeldet.
Damit nichtgespeicherte Daten erhalten bleiben, wird man an dieser Stelle jedoch nicht auf den Login Screen weitergeleitet, sondern erhält ein Anmeldeformular als Overlay. (Vorschlag von florian, nochmals danke dafür.) Hier kann man sich nun erneut authorisieren und kann dann weiterarbeiten, als wäre nichts passiert.
Noch offen (abgesehen von Tests natürlich): Wenn man _andere_, jedoch gültige Login-Daten angibt, kommt man trotzdem auf die Seite zurück, die der Benutzer davor offen hatte. Wenn man die gleichen Rechte hat mag das noch okay sein, andernfalls wird man aber spätestens beim Versuch zu speichern ein Problem haben. Abgesehen davon, daß man unter Umständen Inhalte sieht, die man sonst nicht sehen würde.
Ein weiterer wichtiger Punkt: Drückt man nach dem Logoff - also wenn man das Overlay mit dem Anmeldeformular sieht - F5, wird man zur Anmeldeseite umgeleitet. Jetzt sind ungespeicherte Änderungen auf jeden Fall weg. Das läßt sich aber nicht unterbinden.
Noch zu prüfen ist, ob der Keep alive - Warndialog kommt mit Button [Angemeldet bleiben] - eine mögliche Sicherheitslücke ist.