我正在为基于php的CMS使用“记住我”功能,以下是我如何设置登录系统。
当新用户输入用户名+密码并由服务器验证,然后将cookie发送到客户端并加载新页面。
现在,当加载登录后的第一页时,我正在验证cookie。我在cookie中使用“user_id”+“token”,并在数据库中使用salt保存哈希值。
我想知道的是,我是否需要通过进行数据库查询来验证每个页面加载的cookie,或者以下列方式使用php session
就足够了?
if (!session_id()) {
validate_cookie();
} elseif ($_COOKIE['session'] == session_id()) {
//get the previous verification result;
}
这是一个问题,我必须在客户端保存session_id()和last_cookie()结果。它是否实用,更重要的是它安全吗?或者我必须在每次加载页面时验证它?
如果您认为我应该采取更好的方式来做到这一点,那么请提及它。
答案 0 :(得分:1)
我认为“记住我”选项需要以不同的方式工作。
首先,使用复选框登录后,“设置”cookie即可。
但在所有其他页面上,在您检查会话变量后,您需要检查(如果会话不存在),如果他/她有cookie。使用cookie,您可以重新制作一个新会话并使用它。
答案 1 :(得分:0)
是的,你应该!
制作类似于check.php
的内容,其中包含用于检查会话的代码。然后在您的网页上require()
或include()
此代码。