簡體   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