我正在为一个网站编写登录系统。
以下是我实现登录系统的核心内容:
我有两个表:用户和会话。
users: uid | uname | pass
sessions: sid | uid | ts | ts_expires
用户输入用户名和密码组合。
- 如果组合不正确,我将重定向到“bad auth”页面。
- 如果组合正确,我会:
- 生成一个随机的
sid
(sessionid) - 插入一条记录到
sessions
中,将该sid
与提供的用户名的uid相关联。 - 设置一个名为
sid
的cookie,其中包含刚刚插入到sessions
中的随机sid
的值。
- 生成一个随机的
在需要用户登录的每个页面上,我检查:
- 是否设置了cookie
- 如果sid有效
所以我的问题是:
- 这种机制可能存在什么问题?
- 如何实现良好的登录系统?
附:我尚未使用SSL安全登录。所以,截至目前,这是唯一的问题。哦,我使用php和mysql,如果有相关的话。
编辑:我将密码存储为用户名与密码连接的MD5。
因此,pass = MD5($uname.$pass)
。