我对认证的正常过程有疑问。

我有很多Google,而且阅读很多,但对于身份验证的过程仍然不太清楚,
sessionID实际上是什么?
为什么我们将sessionID存储在数据库中,因为我认为会话ID会过期。为什么我们仍然需要存储它们?
如果我将OAuth用于android应用程序或台式机应用程序怎么办?

更多说明:


例如,我使用Form登录。用户发送“ userName”和“ passWord”,然后使用MD5($ passWord),然后将它们全部发送到服务器URI,对吗?
然后,服务器获取用户名和密码,然后将密码与数据库中的密码进行比较,如果相同,则正确。服务器将SessionId发送回用户,将设置cookie。这个过程对吗?
如果正确,服务器将sessionID存储在数据库中,但是sessionId将过期一段时间,为什么我们将Session ID存储在数据库中?

最佳答案

处理安全数据时,应使用SSL(https)。在密码上执行MD5毫无意义。如果我抓住流量,则可以用蛮力和/或彩虹桌将其取消MD5的大小。 MD5不是为了安全。它用于识别大数据块和小得多的数据块。
您不应将密码存储在数据库中。您应该在数据库中存储密码的盐值哈希。然后,对用户发送的密码进行加盐和哈希处理,以查看其是否与数据库中的密码匹配。同样,不要使用MD5。使用更好(更长)的哈希-并确保其已加盐。
服务器需要知道哪些会话已打开并正在使用。因此,它必须存储它们。您不需要存储会话ID。服务器可以。当会话到期时,服务器将删除该会话。

07-28 03:46
查看更多