我知道关于cookie主题的重要帖子,但我仍然有一些关于实现的不明确的问题。我的想法是:
在我的数据库中,我为每个用户保存cookie_token
,这是在创建帐户时随机生成的。只是一个随机的SHA1或者他BCRYPT的HASH改变了。
然后我的登录逻辑是:
如果用户访问私人网站
LoggedIn
是否正确?
但我也读过一个所谓的series_identifier
,但我无法弄清楚究竟是什么。据我所知,每当用户创建一个新的会话或类似的东西时,它应该以某种方式改变,但我不知道如何实现它。任何人都可以给我一个建议如何做到这一点,或者可能采用其他方法来提高cookie /登录过程的安全性?
祝你好运, 迈克尔
答案 0 :(得分:0)
如果您希望构建防篡改Cookie以进行长期身份验证,this是一个很好的介绍,并且this可以进一步规范该策略。
您正在做的是将一半令牌存储为选择器(在SELECT查询中使用)和数据库中另一半令牌的哈希值。
要验证,您将令牌分成两半,使用第一个来找到正确的数据库记录,然后重新哈希下半部分并将刚刚计算的那个与存储的一个进行比较(使用hash_equals()
)。如果他们匹配,那很好。
如果你想更进一步,你也可以encrypt your cookies using authenticated encryption,但这可能有点过头了。