我遇到與瀏覽器緩存一個(顯然是常見的)問題,我的安全網頁是通過後退按鈕訪問(用戶註銷後)。停止公開安全頁面的後退按鈕?
這裏是我的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');
?>
這在IE7,IE8,Chrome和Firefox上成功註銷用戶 - 但在Safari中,我可以按下後退按鈕(在註銷後立即)並仍然可以看到安全內容。如果我刷新安全頁面,它引導我到登錄界面(因爲它應該。)
你可以自己嘗試一下@http://labs.inversepenguin.com(用戶:堆棧&通:溢出)
我已經嘗試使用:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
...但它沒有效果。任何人都可以提供建議嗎?我發現this article在瀏覽器緩存,但我還沒有發現在它的答案...雖然我沒有找到:「問題」
<?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);
?>
...這也不能解決嗯。
瀏覽器可以自由緩存數據,並在用戶按下「後退」按鈕後顯示。這可能是這裏發生的事情,對此你沒有太多的辦法。 – You 2011-02-11 00:43:53
相關:http:// stackoverflow。com/questions/64059/is-a-way-to-keep-a-page-from-rendering-once-a-person-has-logged-out-but-hit – 2011-02-11 00:47:35
一旦內容被傳遞,已不再安全。 – 2011-02-11 00:49:47