gpt4 book ai didi

php - 真正破坏 PHP session ?

转载 作者:IT王子 更新时间:2023-10-29 00:05:59 25 4
gpt4 key购买 nike

我听到了关于这个话题的不同 react ,那么什么是破坏 PHP session 的可靠方法呢?

session_start();
if(isset($_SESSION['foo'])) {
unset($_SESSION['foo'];
...
}
session_destroy();

在最简单的情况下,这足以真正终止用户和服务器之间的 session 吗?

最佳答案

要销毁 session ,您应该采取以下步骤:

  • 删除 session 数据
  • 使 session ID 无效

为此,我会使用这个:

session_start();
// resets the session data for the rest of the runtime
$_SESSION = array();
// sends as Set-Cookie to invalidate the session cookie
if (isset($_COOKIE[session_name()])) {
$params = session_get_cookie_params();
setcookie(session_name(), '', 1, $params['path'], $params['domain'], $params['secure'], isset($params['httponly']));
}
session_destroy();

为了确保 session ID 无效,您应该只允许由脚本启动的 session ID。所以设置一个标志并检查它是否设置:

session_start();
if (!isset($_SESSION['CREATED'])) {
// invalidate old session data and ID
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}

此外,您可以使用此时间戳定期交换 session ID 以缩短其生命周期:

if (time() - $_SESSION['CREATED'] > ini_get('session.gc_maxlifetime')) {
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}

关于php - 真正破坏 PHP session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com