我在https://wiki.php.net/rfc/session-create-id上找到的这篇文章解释了为什么我只看到我在配置文件中设置的标准长度。但我不确定我是如何知道这个前缀在那里的,也不确定它是否真的添加了一个更安全的session_id。
这篇文章中的信息满足了我的一些好奇心。
注意:前缀长度不是session.sid_length的一部分。会话ID长度变为‘前缀长度’+ session.sid_length。总长度必须少于256个字符。
代码:
//SessionRegeneration
function sess_regenration(){
if (session_status() == PHP_SESSION_NONE){
//CreateRandomStringForPrefix
$RandomizerForPreFix = str_split("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
shuffle($RandomizerForPreFix);
$EmptyStringToAppenRandomizer = '';
foreach($RandomizerForPreFix as $Element ){
$EmptyStringToAppenRandomizer .= $Element;
}
//CreateNewSessionIdWithPrefix
$CreatedId = session_create_id($EmptyStringToAppenRandomizer);
session_id($CreatedId);
//StartSession
session_start();
echo session_id();
}
} 发布于 2018-07-01 08:15:23
我刚刚意识到,为了使用session_create_id()功能,我必须关闭严格模式,尽管现在我将遇到一个未经授权的会话Id的问题...有没有办法创建这个会话Id,并且仍然不允许未经授权的会话。
https://stackoverflow.com/questions/51119457
复制相似问题