使用会话对用户进行身份验证将在用户关闭浏览器后过期


Authenticating users with sessions expires after user closes browser?

我没有使用浏览器cookie,因为我知道它们可以被操纵,我使用的是会话cookie,但对我来说问题是,如果用户重新启动计算机或浏览器,他/她会自动登录并注销。

防止这种情况发生的最好方法是什么,或者有类似"让我签字[√]"的东西?我见过大多数具有此功能的网站。

提前感谢!

"我没有使用浏览器cookie"answers"我正在使用会话cookie"

所以你在使用cookie。尝试呼叫

session_set_cookie_params(time()+3600*24*365*5);

session_start() 之前

您必须为cookie设置一个过期时间。通常,当用户关闭浏览器时,会话cookie会被删除。具有过期时间的cookie只有在cookie过期、用户清除浏览器缓存/卸载浏览器等情况下才会被删除。

例如,在PHP中,可以使用setcookie('somename', 'somevalue', timeoutvalue)方法获取更永久的cookie,并使用$_COOKIE['somename']检索它们,而不是使用$_SESSION['somename'] = 'somevalue'。如果你想要更多的安全性,你也可以将登录状态保存到数据库中,并在用户每次访问你的网站时将其与cookie进行比较。这样可以防止有人篡改cookie以伪造身份。

为了避免混淆,会话id存储在cookie中。您可以简单地延长会话cookie的使用寿命。其他解决方案是。。棘手的