我是否需要在每次加载页面时验证cookie

时间:2013-12-27 18:42:58

标签: php validation session cookies

我正在为基于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()结果。它是否实用,更重要的是它安全吗?或者我必须在每次加载页面时验证它?

如果您认为我应该采取更好的方式来做到这一点,那么请提及它。

2 个答案:

答案 0 :(得分:1)

我认为“记住我”选项需要以不同的方式工作。

首先,使用复选框登录后,“设置”cookie即可。

但在所有其他页面上,在您检查会话变量后,您需要检查(如果会话不存在),如果他/她有cookie。使用cookie,您可以重新制作一个新会话并使用它。

答案 1 :(得分:0)

是的,你应该! 但这很简单:
制作类似于check.php的内容,其中包含用于检查会话的代码。然后在您的网页上require()include()此代码。