0

我正在创建授权。在会话中我想保留用户 ID,但理论上我可以在我的电脑上打开会话文件并将这个 ID 和沙子更改为服务器。所以我想从会话 ID + 我在 md5 中的 ID 创建一些额外的安全密钥,但是当我尝试获取会话 ID 时,$security_key = session_id($_SESSION['user_id']);我得到:

警告:未知:会话 id 太长或包含非法字符,有效字符为 az、AZ、0-9 和第 0 行未知中的“-” 警告:未知:写入会话数据(文件)失败。请在第 0 行的 Unknown 中验证 session.save_path 的当前设置是否正确 (/Users/Sites/demo/sessions/)

更新:非常感谢,但我自己解决了。正确的版本 session_id(user_id)

4

1 回答 1

0

如果您想创建会话令牌,只需使用以下内容:

$_SESSION['token'] = md5(session_id().$_SESSION['user_id'].$_SERVER['HTTP_USER_AGENT'].'randomlol');

如果您担心有人更改主机上的会话变量,您应该考虑使用会话处理程序将会话变量存储在数据库中。

于 2012-08-09T07:55:57.327 回答