您的位置:首页 > 其它

关掉浏览器后,再次打开浏览器,记住用户登录状态是怎么实现的?

2015-12-31 00:00 513 查看
摘要: 关掉浏览器后,再次打开浏览器,记住用户登录状态是怎么实现的?摘自-知乎

呵呵,我的意思是隔很长时间后,再次打开网站,依然保持着登录的状态

不是指一次会话的情况下,保持用户状态

主要是求大大来指点一下这样做怎样不好,那样做又有神马问题

我理解主要是由两种方式

第一种:将用户ID和密码加密之后放在用户浏览器cookie里,设置一个很长的过期时间,每次登陆的时候,先解码,然后通过用户名密码验证用户

这种方法我总感觉如果加密做的不好的话,会把用户密码泄露出去

第二种:在服务器端保存用户的数据,让其与一个唯一的ID关联,然后浏览器端cookie保存这个随机的ID很长时间,下一次只要拿着这个ID过来,服务器在自己这边找一找看看能不能找到用户数据,找到了就将数据赋给session

这种方法需要服务器端保存一定的数据,我也不知道这种拿着一个ID就过来验证身份的方法是不是安全

大大们帮我分析一下,这两种做法的利弊

我现在感觉,保存id和密码在cookie里的方式只是省去了在服务器端保存数据的开销,没有神马其他的好处,是这样吗?

回答:

永远不要在cookie里存放任何形式的密码。

用第二种。

还是需要记录一类的唯一验证的东西,防止 cookie 欺骗,比如存储未公开数据库的 uid 的 MD5 加密,然后服务器读取验证,或者使用其他比较强悍的密码加密手段,比如我的 MD5( sha256( $password ) . $userid ),但还是有泄漏密码的危险,需要找到一个平衡点。。

刘诗诗 赞同

cookies千万不要放密码,加密的不可逆密码也不行,现在电脑的计算能力越来越强,利用穷举法就可以破解你的密码。

密码/权限信息等等千万不要保存在cookie里面.
cookie里面只保存用户的id和上次登陆时间和你觉得还需要的非敏感数据(当然它们需要使用可逆的加密算法来加密保证不被伪造). 然后服务器端根据用户然后在涉及敏感数据(比如付款,修改密码等,跟你的系统需求而定)的地方对长时间(例如:上次登陆距离现在超过了24小时)登陆的用户采取密码确认的方式来强制验证用户的身份.

不会放用户名密码的。我了解的方法是在cookie里种了一个自动登陆的piao据,失效时间较长,有可能是将你id,密码,登陆时间戳,私钥加密后做为cookie。也有可能加了你的登陆ip,这样别人盗取你的cookie也不会让你的信息丢失。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: