比如我做一个php的用户登录系统,当然用户输入账号和密码比对数据库有对应信息ok后,直接产生cookie值来表示当前用户已经登录,
cookie值用自己写的加密函数结合本站自定义的密钥来加密,加密后cookie值就是一串乱码了,现在关键问题就在用户登录后,用户登录后打开每个页面,我的程序是直接把cookie结合密钥解密了来结合数据库比较cookie里面每个和数据库相关的字段,(之前的登录cookie的原值为:用户名|随机号码|编号|邮箱,这四个都是字段,每个字段用|隔开了,方便登录后直接使用explode函数拆开来和数据库比对),那这样每次用户刷新一个页面都和数据库比对一下,存在对应的1条记录就判断用户合法登录,不对应则为生产的假cookie,直接删除cookie,强制退出会员系统,
问题就在这里,每次刷新一个页面都要和mysql数据库连接比对,是不是太耗资源了,如果不这样,我考虑的是,我在后台删除了这个会员,这个会员肯定是马上要强制退出的,有什么好的方法解决用户登录后不用每次刷新页面都和数据库比对吗,而且我在后台删除这个会员,这个会员登录状态马上就会比注销。
session存在服务器端,安全性肯定更胜于cookie,但是现在我的这个项目是个门户站,而且放在512M内存的VPS啊,用session效果固然要差于cookie很多的,现在关键就像在cookie上下功夫,解决用户登录问题,其实我想了个方法,能不能用缓存的思路来做,存在
cookie的时候,登录后设置一个和数据库连接比对的周期时间,比如为5分钟内刷新不连接比对,设置为时间为300,在用户刷新的时候,判断保存在cookie里面的初始时间,再用服务器当前时间减去初始时间,结果小于300秒的话就不比对,大于300秒,更新cookie里面
的当前时间,并且连接数据库比对,唯一一点就是不能及时实现我后台删除了,前台还在登录,不知道我这个思路可行否。
主要做的是门户网站,所以每个性能我觉得都要考虑到,毕竟细节决定成败嘛,我补充了一下问题,里面有我自己新想出来的方法,字数太多了,回复发不上去,你看看我的方法可行否啊
session存在服务器端,安全性肯定更胜于cookie,但是现在我的这个项目是个门户站,而且放在512M内存的VPS啊,用session效果固然要差于cookie很多的,现在关键就像在cookie上下功夫,解决用户登录问题,其实我想了个方法,能不能用缓存的思路来做,存在cookie的时候,登录后设置一个和数据库连接比对的周期时间
考虑到是512m内存的vps,所以才决定用cookie的,有好点的方法么
这个就怕伪造cookie啊,cookie在客户端,被伪造太容易了