Auch bei einem echten Reload. Also selbst wenn ich die Seite nach dem Logout komplett neu öffne, komm ich auf die versteckten Inhalte drauf, sofern ich mich noch in dem angegeben Zeitfenster befinde.
Jedenfalls auf der Testseite kann ich das von Dir genannte Verhalten nicht nachvollziehen.
Im Download fand ich mit ein wenig Mühe:
function ftx_close_session () {
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params["path"],
$params["domain"], $params["secure"], $params["httponly"]
);
}
$sess = session_id();
if ($sess) {
if ( function_exists('session_unset') ) { session_unset(); }
if ( session_id() && function_exists('session_destroy') ) { session_destroy(); }
}
if ( is_file (SESSION_FILE_DIR . '/sess_' . $sess) ) {
unlink ( SESSION_FILE_DIR . '/sess_' . $sess );
}
}
Das sieht nach einem sehr harten Löschen der Session aus. Was jetzt das allgemeine Löschen der Session-Dateien betrifft:
Normalerweise stehen die in /tmp. Auf modernen Systemen findet sich aller paar Minuten folgendes im syslog:
(root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Das ist Shellskript, welches die PHP.ini-Dateien(!) untersucht und nach veralteten Sessions in den darin konfigurierten Verzeichnissen sucht und diese löscht. Hier wird aber absichtlich ein anderes Verzeichnis benutzt, damit die Session länger gültig sein kann. Deshalb werden aber die Session-Dateien des "Login-Systems" nicht automatisch gelöscht.
Der zugehörige Aufruf findet sich in
/etc/cron.d/php
bzw. /etc/cron.d/php5
und sieht so aus:
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean
Damit dann geklärt, wann und wie die Session-Dateien gelöscht werden.
"IP-Adresse merken"
Das kann nützlich sein, wenn z.B. durch Mitschneiden des Netzverkehrs die Session-ID nach außen dringt. Die auth.php prüft, ob die aktuelle IP zur gespeicherten passt. Wenn nicht wird die Session gelöscht und ein neues Login angefordert. Wechselt jemand, egal ob freiwillig und bewusst oder nicht häufig die IP, dann muss er den Haken nicht setzen. Ansonsten gibt es durchaus einen kleinen Sicherheitsgewinn, der sich aber, wenn mangels HTTPS die Möglichkeit zum Mitschneiden des Netzverkehrs besteht als "eher gering" darstellt, weil natürlich auch Benutzername und Passwort mitgeschnitten werden können. Die Funktion der Funktion ist damit "Marketing".