来源在这里http://jaspan.com/improved_persistent_login_cookie_best_practice
请提出改进意见(方法的更改)。在这里,我只想在 cookie 中存储用户名,这样用户就不需要输入用户名。以黑客无法从被盗 cookie 中知道用户名的方式存储(如果可能的话)
如果用户选中记住我并成功登录
1)根据用户名创建一些东西。例如 $username_for_cookie = MD5($username).$salt;+可能是别的东西。在mysql中记录$username_for_cookie
2) 创建标识符。简单的随机值。在mysql中记录标识符
3) 创建令牌。也是简单的随机值,也记录在mysql中。
4) 创建 cookie 将所有上述值放在一起 $username_for_cookie 。$标识符 .$token
Cookie 名称也可能是随机值或类似 _eglasjd
用户重访网站
1)检查cookie是否存在
2) 如果 cookie 存在单独的 $username_for_cookie 。$identifier .$token 获取 3 个分隔值
3) 如果 $username_for_cookie 值存在,则在 mysql 中搜索。如果不存在,登录表单输入用户名和密码。如果存在比较 $identifier 和 $token 是否与 mysql 中的相同
这种方法“安全”吗?有什么需要改进的?