如何建立防弹cookie系统?

时间:2014-05-26 22:17:26

标签: php security session cookies

我知道关于cookie主题的重要帖子,但我仍然有一些关于实现的不明确的问题。我的想法是:

在我的数据库中,我为每个用户保存cookie_token,这是在创建帐户时随机生成的。只是一个随机的SHA1或者他BCRYPT的HASH改变了。

然后我的登录逻辑是:

如果用户访问私人网站

  1. 会话LoggedIn是否正确?
    1. 是的:一切正常,请停止进一步检查
    2. 否:继续2。
  2. 如果具有其ID的用户具有与其cookie中保存的令牌相同的令牌,则查询该数据库。
    1. 如果是,则设置LoggedIn cookie
    2. 重定向。
  3. 但我也读过一个所谓的series_identifier,但我无法弄清楚究竟是什么。据我所知,每当用户创建一个新的会话或类似的东西时,它应该以某种方式改变,但我不知道如何实现它。任何人都可以给我一个建议如何做到这一点,或者可能采用其他方法来提高cookie /登录过程的安全性?

    祝你好运, 迈克尔

1 个答案:

答案 0 :(得分:0)

如果您希望构建防篡改Cookie以进行长期身份验证,this是一个很好的介绍,并且this可以进一步规范该策略。

您正在做的是将一半令牌存储为选择器(在SELECT查询中使用)和数据库中另一半令牌的哈希值。

要验证,您将令牌分成两半,使用第一个来找到正确的数据库记录,然后重新哈希下半部分并将刚刚计算的那个与存储的一个进行比较(使用hash_equals())。如果他们匹配,那很好。

如果你想更进一步,你也可以encrypt your cookies using authenticated encryption,但这可能有点过头了。