php“保持登录状态”复选框如何影响日志记录过程?

时间:2012-03-22 23:15:05

标签: php session cookies

我想知道当用户使用或不使用“保持登录状态”复选框登录网站时会发生什么。 根据我的理解,start_session在服务器上创建一个变量,并将会话ID存储在cookie中的客户端浏览器上,在关闭所述浏览器时销毁。 根据这个推理,我想检查“保持登录状态”复选框会将到期日期推迟N秒,这可以通过设置来实现:

setcookie(session_name(), session_id(), time()+N);

在这种情况下,我认为不需要使用cookie,至少对于日志记录过程而言。 我是对的还是非常错的? :)

2 个答案:

答案 0 :(得分:2)

有一些典型的方法可以处理“保持登录状态”框...

  • 您可以在持久性Cookie中设置用户的信息,并查找该Cookie。
  • 你可以创建一些唯一的ID(最好是一个大的...就像一个GUID或哈希),将它存储在一个持久的cookie中,然后让它作为身份验证信息。

请注意,大多数解决方案不涉及实际 登录的用户;他们只是这样做,以便用户看不到另一个密码提示。保持会话存活并将会话ID存储在持久性cookie中在技术上是可行的,但是对于拥有大量用户的站点,这将是服务器上额外的空间和负载。

答案 1 :(得分:1)

我编写这样的选项的方法是创建一个令牌并将其与用户ID一起存储在数据库中。然后我将该令牌作为cookie提供给浏览器。无论何时页面请求完成,我都会检查用户是否有活动会话,然后是否有此令牌cookie。如果他们有令牌cookie,我会查看数据库以查看它是否有效,如果是,则创建一个具有该用户ID的会话。

然而,我确信这是一种不安全,容易破解的方法。