3

安全登录用户并保持用户使用 cookie 和会话登录的最佳方式是什么?

例如:

  1. 检查密码和电子邮件是否对特定用户有效

  2. 使用任意字符串设置 cookie

  3. 使用相同的任意字符串创建会话

  4. 通过确保 cookie 和会话的任意字符串相同来验证用户的每个请求

4

3 回答 3

1

安全登录用户并使用 cookie 和会话保持用户登录的最佳方式是什么?

使用已建立的图书馆。

于 2013-06-15T04:33:38.663 回答
0

这取决于您如何定义“创建会话”。出于我们的目的,我们将其定义为“使用 id 创建服务器端数据存储并使用该 id 设置 cookie”;即默认值的session_start()作用。然后:

  1. 确保连接是 HTTPS。
  2. 检查登录凭据。
  3. 如果有效,则创建一个具有大的(伪)随机 id 的会话(见上文),并且到期时间尽可能短,但要尽可能长。这里的安全性来自这样一个事实,即无法适当地猜测随机会话 id,因此它们越长,有效期越短越好。
  4. 将登录用户的 id 存储在会话中。
  5. 在每个页面请求上,查看 cookie 中 id 的会话是否存在;如果是这样,请使用存储在其中的用户 ID 来获取您的登录用户。
  6. 可选地存储和检查用户代理不是一个坏主意;但是,您不应该检查 IP 地址,因为它可能会合法地更改。
于 2013-06-15T07:20:47.993 回答
-1

除了将其存储在会话中,您还可以按照此方法保持用户登录,即使在他关闭浏览器后 ->

1)创建一个存储用户详细信息和唯一哈希的 cookie
2)创建一个会话表(在 mysql db 或您选择的任何其他数据库),其中唯一的哈希存储在用户 ID、浏览器的用户代理和 ip 地址。
3)下次用户登录时检查用户登录时是否来自同一个ip,同一个用户代理..如果不是,则删除数据库条目,并重复步骤1和2。
除了保留一个用户登录后,它还为您提供了比仅存储在会话中更好的安全性。

于 2013-06-15T04:41:02.123 回答