我正在创建授权。在会话中我想保持用户ID,但理论上我可以在我的电脑上打开会话文件并更改此ID和沙子到服务器。所以我想从md5中的会话ID +我的id创建一些额外的安全密钥,但是当我尝试获取会话ID $security_key = session_id($_SESSION['user_id']);
时,我得到:
警告:未知:会话ID太长或包含非法 字符,有效字符是未知的a-z,A-Z,0-9和' - ,' 第0行警告:未知:无法写入会话数据(文件)。请 验证session.save_path的当前设置是否正确 (/ Users / Sites / demo / sessions /)在第0行的Unknown中
更新:非常感谢,但我自己解决了。正确版本session_id(user_id)
答案 0 :(得分:0)
如果您想要创建会话令牌,只需使用以下内容:
$_SESSION['token'] = md5(session_id().$_SESSION['user_id'].$_SERVER['HTTP_USER_AGENT'].'randomlol');
如果您担心有人在您的主机上更改会话变量,您应该考虑使用会话处理程序将会话变量存储在数据库中。