我是PHP开发的新手。到目前为止,我在cookie中存储了一个哈希(用户+密码)以保持用户登录。现在我已经发现了php会话。
当然有人可以修改存储的值而无需访问服务器吗?
$_SESSION['username'] = 'test@test.com';
答案 0 :(得分:6)
不,没有服务器访问权限就不能直接修改会话(直到你留下了黑客的漏洞)
Session是服务器(RAM或FileSystem)上的一个数组,它通过cookie映射到用户。用户只能在cookie中获取会话ID。当用户返回时,PHP获取该会话ID并恢复会话。
答案 1 :(得分:2)
客户端永远不会更改变量$_SESSION
。我还建议您不要将密码保存在$_SESSION
中,而不要保存在$_COOKIE
中。您可以检查用户和密码是否正确,然后您可以创建$_SESSION['userID']
或$_SESSION['user']
然后只需通过创建带有isset函数的if语句来检查是否已创建会话:
if(isset($_SESSION['user'])){
// do something...
}