如何“安全”?在cookie中存储信息


How to "secure" store information in cookies?

来源在这里http://jaspan.com/improved_persistent_login_cookie_best_practice

请建议改进(方法的变化)。这里我只想在cookie中存储用户名,这样用户就不需要输入用户名。以一种黑客无法从被盗cookie中知道用户名的方式存储(如果可能的话)

如果用户勾选Remember me并成功登录

1)根据用户名创建一些东西。例如$username_for_cookie = MD5($username).$salt;+可能是其他的东西。在mysql中记录$username_for_cookie

2)创建标识。简单的随机值。记录mysql

中的标识符

3)创建token也是简单的随机值,也记录在mysql中。

$username_for_cookie $username_for_cookie标识符。美元标记

Cookie名称也可以是随机值或像_ekglasjd这样的值

用户重新访问网站

1)检查cookie是否存在

2)如果cookie存在,则分开$username_for_cookie。$identifier .$token获取3个分隔值

3)如果$username_for_cookie值存在,在mysql中搜索。如果不存在,登录表单输入用户名和密码。如果存在,比较$identifier和$token是否与mysql

中的相同。

这种方法"安全"吗?需要改进什么?

您可以通过以下操作来改进它。

  1. 只使用https。
  2. 令牌被使用后重置。
  3. 令牌必须在某个窗口内使用,否则它将过期,用户需要再次登录。
  4. 确保令牌足够随机,不能被复制。不应该使用用户数据构建。