在我这么说之前,制作一个不会退出用户的网站的最佳方法是什么 - 无论会话持续时间默认是什么?
我当前的代码使用的Cookie会在设定的持续时间后过期:
setcookie('user_id', sha1($username),time()+SOME_INTERVAL); //sha1 encrypts the username
但我不确定这个的安全性。
我会更乐意使用会话,根据需要重新生成。但我不确定如何确保会议不会提前停止。
这是我将要分享的一个软件包,所以我想在我的代码中做任何事情,而不是在网站的配置中。
答案 0 :(得分:2)
我有一个想要让用户登录的网页,我将cookie设置为:
setcookie("login_token", $username . '|' . sha1($secret . $username . $password), time() + SOME_INTERVAL);
秘密阻止用户自己创建cookie;它还允许我们通过更改密钥使所有登录无效。并且连接密码意味着如果他们更改了他们的密码,他们的登录将被无效(因为他们可能已经更改了它,因为有人闯入他们的帐户,所以他们应该被阻止)。
当他们回来时,它会从|
之前提取用户名,查找他们的密码,并检查SHA1是否与cookie匹配。