Session 创建登录流的最佳实践?

Session 创建登录流的最佳实践?,session,cookies,login,Session,Cookies,Login,安全登录用户并让用户使用cookie和会话登录的最佳方式是什么 例如: 检查密码和电子邮件是否对特定用户有效 使用任意字符串设置cookie 使用相同的任意字符串创建会话 通过确保cookie和会话的任意字符串相同,验证用户的每个请求 安全登录用户并让用户使用cookie和会话登录的最佳方式是什么 使用已建立的库。除了将其存储在会话中之外,您还可以按照此方法让用户保持登录状态,即使用户关闭浏览器后也是如此-> 1) 创建存储用户详细信息和唯一哈希的cookie 2) 创建一个会话表(在mysq

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

例如:

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

  • 使用任意字符串设置cookie

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

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

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


    使用已建立的库。

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

    1) 创建存储用户详细信息和唯一哈希的cookie
    2) 创建一个会话表(在mysql数据库或您选择的任何其他数据库中),其中根据用户id、浏览器的用户代理和ip地址存储唯一哈希值。
    3) 下次用户登录时,请检查用户登录时是否来自同一ip、同一用户代理。。如果没有,则删除数据库条目,并重复步骤1和2。

    除了让用户登录外,它还提供了比仅存储在会话中更好的安全性。

    这取决于您如何定义“创建会话”。出于我们在这里的目的,让我们将其定义为“创建一个具有id的服务器端数据存储并设置一个具有该id的cookie”;i、 e.默认的
    session\u start()
    功能。然后:

  • 确保连接是HTTPS
  • 检查登录凭据
  • 如果有效,创建一个会话(见上文),该会话具有一个大的(伪)随机id和一个尽可能短但尽可能长的过期时间。这里的安全性来自这样一个事实,即猜测适当的随机会话ID是不可行的,因此它们越长,有效窗口越短越好
  • 在会话中存储登录用户的id
  • 在每个页面请求上,查看具有来自cookie的id的会话是否存在;如果是这样,请使用其中存储的用户id获取您的登录用户
  • 可选地存储和检查用户代理不是一个坏主意;不过,您不应该检查IP地址,因为IP地址可能会合法更改

  • 永远不要在cookie中存储任何实际的用户详细信息,只存储无意义的不透明blob!我指的是用户详细信息、用户名和姓。不是密码或任何机密数据。