【问题标题】:Do I need to validate the cookie on every page load我是否需要在每次页面加载时验证 cookie
【发布时间】:2013-12-27 18:42:57
【问题描述】:

我正在为基于 php 的 CMS 使用“记住我”功能,这就是我设置登录系统的方式。

当新用户输入用户名 + 密码并通过服务器验证,然后将 cookie 发送到客户端并加载新页面。

现在,当登录后的第一页被加载时,我正在验证 cookie。我在 cookie 中使用“user_id”+“token”,并在数据库中使用盐保存哈希。

我想知道的是,我是否需要在每次页面加载时通过进行数据库查询或使用php session 以下列方式验证 cookie 是否足够?

if (!session_id()) {
    validate_cookie();
} elseif ($_COOKIE['session'] == session_id()) {
    //get the previous verification result;
}

这是一个问题,我必须将 session_id() 和最后一个 validate_cookie() 结果保存在客户端。那么它是否实用,更重要的是它是否安全?或者我必须在每次页面加载时验证它?

如果您认为我应该采用更好的方法来做到这一点,请提及。

【问题讨论】:

  • 还有一点,客户端存储和使用会话数据可靠吗?

标签: php validation session cookies


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    首先,使用复选框登录后,cookie的“设置”就可以了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2014-10-30
      • 2013-05-08
      • 2021-12-01
      相关资源
      最近更新 更多