che sto incontrando un problema (apparentemente comune) con cache del browser, e le mie pagine protette essendo accessibile tramite il pulsante Indietro (dopo il logout dell'utente.)Arrestare il pulsante Indietro per esporre pagine sicure?
Ecco il mio logout.php
<?php
// 1. Find the session
session_start();
// 2. Unset all the session variables
$_SESSION = array();
// 3. Destroy the session cookie
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// 4. Destroy the session
session_destroy();
redirect_to('index.php?logout=1');
?>
Questo riesce a disconnettere gli utenti su IE7, IE8, Chrome e Firefox - ma in Safari, posso premere il pulsante Indietro (subito dopo aver effettuato il logout) e vedere ancora il contenuto sicuro. Se rinfresco la pagina sicura, mi si avvia alla schermata di accesso (come dovrebbe.)
si può provare da soli @http://labs.inversepenguin.com (utente: impilare & passaggio:. Overflow)
Ho provato con :
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
... ma non ha alcun effetto. Qualcuno può offrire qualche consiglio? Ho trovato this article il caching del browser, ma devo ancora trovare una risposta all'interno di esso ... anche se ho trovato: "problema"
<?php
Header("Cache-Control: must-revalidate");
$offset = 60 * 60 * 24 * 3;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
Header($ExpStr);
?>
... che pure non risolve il Hmm.
I browser sono liberi di memorizzare i dati nella cache e visualizzarli successivamente quando l'utente preme il pulsante "indietro". Questo è probabilmente quello che sta succedendo qui, e non c'è molto che tu possa fare al riguardo. – You
Correlati: http: // stackoverflow.it/questions/64059/is-there-a-way-to-keep-a-page-from-rendering-once-a-person-has-logged-out-but-hit –
Una volta che il contenuto è stato consegnato, non è più sicuro. –