[字号:  ]

关于cookie登录验证

发布时间:2008-10-07 12:40   作者: 记忆   信息来源: PHPChina 开源社区门户
想用cookie做登录认证和登录状态保存,

参考了下wordpress 和discuz的代码,有几个不看不明白的问题请教下大家

1. 假设管理员的cookie被别人非法获取了,怎么避免非法获取cookie的人进一步获取登录状态?

2. wordpress 的登录是将 管理员名 + cookie到期时间 + 密钥 做hmac加密后存放在cookie里,而这里的密钥要求一个唯一随机的字符串 ,我知道这样别人在不知道密钥的情况下是无法伪造登录cookie的,但是这个密钥并不能 解决 问题1 吧??

3.如果将密钥设置为 一个变量 即:随机的字符串+客户端ip+客户端浏览器信息 这样是不是可以解决 问题1 ??

可能说的不大清楚,希望有研究过  cookie验证登录方式的朋友赐教:)

最新回复

记忆 at 2008-10-07 15:10:52
大家都是怎么做 cookie验证的?没涉及到上面的问题?
七月十五 at 2008-10-07 21:02:44
cookie通常是安全的。使用cookie可以带来诸多方便。但是因为cookie是存在于客户端的,所以有被伪造的可能。所以安全的做法是一般的操作可以基于cookie而涉及管理等操作需要再次验证密码,以session来保存会话。
asu530 at 2008-10-08 02:40:52
我就是打算用楼上的方法,本地cookie 记录用户名和密码
需要修改、删除等操作 再用cookie记录的用户名和密码,查询数据库后保存session。

疑惑:
这样保存session,大量应用会不会加重服务器负担?session设置时间过短又造成频繁查询。

[ 本帖最后由 asu530 于 2008-10-8 02:42 编辑 ]
记忆 at 2008-10-08 09:47:55
使用session 保存用户会话的话,如果用户量很大的话会频繁i/o 占用服务器资源,这也是discuz使用cookie的主要原因吧,而且因为php的先天原因,session不能长久的保存用户状态。
myBe at 2008-10-08 14:30:34
discuz好像还用了个叫session的临时表.
于安 at 2008-10-10 00:06:51
session的临时表

是记录在线,用户动作的..