繁体   English   中英

与PHP session_regenerate_id的混淆

[英]Confusion with PHP session_regenerate_id

关于我正在执行的会话的安全性,我是否在session_regenerate_id方面遇到问题。

我正在处理的代码与php.net上的用户帖子非常相似,但针对该问题我将其简化了如下:

ini_set('session.save_handler', 'files');
session_save_path(dirname(__FILE__).'/tmp');

session_start();

$_SESSION['Test'] = "info";
$_SESSION['Test2'] = "more info";

$orig = session_id();

session_regenerate_id();

echo "Original session is ".$orig."<br>";
echo "Regen session is ".session_id()."<br>";

输出到屏幕

原始会话为o9t1rhb2o9affn1ljisic1tas1
再生会话为gu9pkhi3loklr02r23m8lkvoh4

o9t1rhb2o9affn1ljisic1tas1的内容是

gu9pkhi3loklr02r23m8lkvoh4的内容是

Test | s:4:“信息”; Test2 | s:9:“更多信息”;

如您所见,只有新会话包含任何数据,原始会话为空。 我期望两者都包含相同的数据。

我是否在这里缺少某些东西,或者这是正确的行为?

阅读手册

session_regenerate_id()将新的ID 替换当前的会话ID,并保留当前的会话信息。

session_regenerate_id(true); // Delete old session (default)

session_regenerate_id(false); // Keep old session

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM