ログイン時に HTTPS に切り替え、ログアウト時に HTTP に戻る Web ページがあります。セキュリティを強化するために、セッション Cookie はログイン時にセキュア (HTTPS) に設定されます。私のログアウトページはかなり標準的で、次のコードがあります:
session_start();
$_SESSION = array();
$params = session_get_cookie_params();
setcookie(session_name(), "", time() - 42000, $params['path'], $params['domain'], $params['secure'], $params['httponly']);
session_destroy();
require("/var/www/include/logout_success.php");
最近応答ヘッダーを調べ始めるまで、私はその影響についてあまり考えていませんでした。session_start()
ページが HTTP に戻ったときに呼び出すと、安全な Cookie をオーバーライドする新しいセッション Cookie が作成されるように見えます。
これは、setcookie
とsession_destroy
が古いセッションではなく新しいセッションに作用している可能性があることを意味します。サーバーに保存されている古いセッション データが適切に破棄されない可能性があることを懸念しています。
この場合、HTTP ログアウト ページをコーディングして、古いセッション データが実際に破棄されるようにするにはどうすればよいでしょうか。