pix*_*ine 5 php login login-script remember-me
我使用基于SESSION变量的简单登录系统.用户登录后,会设置会话变量,告诉我的脚本要接受用户.我不使用任何自定义客户端cookie变量.
我想在登录屏幕上提供"让我记录一整天"的选项.如何以安全的方式做到这一点?
Der*_*sed 14
第一步:session.cookie_lifetime在php.ini,配置文件或via中配置指令session_set_cookie_params().
接下来,在会话中存储用户名和密码的哈希值,并在每个页面上验证该登录.只要它仍然有效,他们就可以保持登录状态.
会话cookie的自然过期通常应该保持整洁,因为如果他们保持活动,你将不会有任何人在他们的会话中间登出(如果星星对齐它们).如果不这样做,我会认为eCartoth的解决方案紧随其后,因为你可以在if语句中添加第二行:
if (my_validate_user_function($_SESSION['username'],$_SESSION['passhash'])
&& $_SESSION['deathstamp'] > time()
) {
// user is logged in again, oh boy!
}
else {
// send in the death robots
header('Location: /login.php',true,302);
}
Run Code Online (Sandbox Code Playgroud)
编辑:你可能想要考虑的一件事是会话固定和/或会话劫持.为了防止这种情况,我建议使用两种解决方案中的一种(或两种):
session_regenerate_id()每次成功登录尝试后使用.| 归档时间: |
|
| 查看次数: |
10465 次 |
| 最近记录: |