搜索

首页  >  问答  >  正文

php 记住密码登陆如何做安全

一般的做法是cookie里面存账号密码 但是这样不安全 有没安全的做法呢

大家讲道理大家讲道理2711 天前869

全部回复(4)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-06-23 09:13:09

    1. 首先,登录成功了之后,随机生成一个MD5的hash值token(32位或者64位);

    2. 然后,把这个token存入当前用户的表,然后给这个用户增加一个token字段和last_login_time字段;

    3. 把这个token返回让浏览器的cookie存储,设置一个最长时常,比如30天;

    这三个过程的主要作用就是,last_login_time可以检查过期时间,过期时间到了之后,就更新这个token,另外,只要用户通过这个token登录成功就进行更新token,这样就能尽可能的保证安全。

    每次用户访问网站的时候,检查cookie里是否有token,如果有token就去数据库查询数据,如果查到就直接登录成功了,也就省去了用户名和密码验证登录的阶段。

    整套思想是这样,你也可以让前端把token存入localstorage

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-06-23 09:13:09

    用jwt token的方式,浏览器的存token。

    具体可以看看下面两个文章

    jwt-vs-oauth-authentication , jwt

    回复
    0
  • 欧阳克

    欧阳克2017-06-23 09:13:09

    不要用cookie存帐户密码,存一个记住登陆的flag,最后是与上次登陆的时间, 以及生成的key, 拼成一个加密串。然后存到cookie中。
    然后每次登陆的时候查看是否有这个cookie.有的话进行解密。然后可以解决这个串进行校检。如果正常直接给予登陆即可。

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-23 09:13:09

    cookie是将密码放到本地,session是将密码放在服务器。相对来说session比较安全。但是cookie处理的好的话也是很安全的。

    回复
    0
  • 取消回复