gpt4 book ai didi

php - 身份验证过程,为什么将sessionID存储在数据库中?

转载 作者:行者123 更新时间:2023-11-29 20:48:20 25 4
gpt4 key购买 nike

我对正常身份验证过程有疑问。

google了很多,也看了很多,但是还是不能很清楚认证的过程,sessionID 实际上是什么?为什么我们将 sessionID 存储在数据库中,因为我认为 session ID 会过期一段时间。为什么我们还需要存储它们?如果我对 Android 应用程序或桌面应用程序使用 OAuth 会怎样?

更多解释:

  1. 比如我用Form登录,用户发送“userName”和“passWord”,然后我用MD5($passWord),然后全部发送到服务器URI,对不对?

  2. 然后服务器获取用户名和密码,然后将密码与数据库中的密码进行比较,如果相同,则正确。服务器将 SessionId 返回给用户,cookie 将被设置。流程对吗?

  3. 如果正确,服务器会将sessionID存储到数据库中,但是sessionId会过期一段时间,为什么要将session ID存储到数据库中?

最佳答案

  1. 处理安全数据时,应使用 SSL (https)。对密码执行 MD5 是毫无意义的。如果我捕获了流量,我可以用蛮力和/或彩虹表对其进行 un-MD5。 MD5 不是为了安全。它用于用小得多的数据 block 识别大数据 block 。

  2. 您不应将密码存储在数据库中。您应该在数据库中存储密码的加盐哈希值。然后,您对用户发送的密码进行加盐和哈希处理,看看它是否与数据库中的内容相匹配。同样,不要使用 MD5。使用更好(更长)的散列 - 并确保它已加盐。

  3. 服务器需要知道哪些 session 是打开的和正在使用的。因此,它必须存储它们。您不需要存储 session ID。服务器会的。当 session 过期时,服务器删除 session 。

关于php - 身份验证过程,为什么将sessionID存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com