我实现了基于http://jaspan.com/improved_persistent_login_cookie_best_practice的持久性cookie。
问题:
如果用户尝试访问页面。身份验证成功后,将从数据库中删除使用的令牌。生成一个新令牌,使用用户名和相同的系列标识符存储在数据库中,并向用户发出包含所有三个的新登录cookie。
当你在这里生成一个新的cookie时,你需要一个cookie年龄,我把它作为默认值1个月。因此,每次生成新的cookie时,我应该将其设置为默认值(1个月),还是应该在我的数据库中存储一个字段来计算到期时间(比如1个月的倒计时)。这是正常行为吗?
另一个问题,我觉得每次访问页面时删除令牌并将新的令牌发送到db都有点过分。这个操作是否像我想象的那样昂贵?
答案 0 :(得分:1)
添加服务器和客户端的到期日期,否则攻击者抓取的cookie将永久有效。
更改令牌很好,可以帮助防止上述情况。每次访问页面看起来都有点过分,如果您的网站繁忙,可能会对性能产生影响。每5分钟左右刷新一次怎么样?