关掉浏览器后,再次打开浏览器,记住用户登录状态是怎么实现的?
博客专区 > Corwien 的博客 > 博客详情
关掉浏览器后,再次打开浏览器,记住用户登录状态是怎么实现的?
Corwien 发表于2年前
关掉浏览器后,再次打开浏览器,记住用户登录状态是怎么实现的?
  • 发表于 2年前
  • 阅读 804
  • 收藏 6
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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

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

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

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

我理解主要是由两种方式

第一种:将用户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也不会让你的信息丢失。


共有 人打赏支持
粉丝 23
博文 144
码字总数 115164
×
Corwien
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: