【问题标题】:Is it safe to store passwords in Lithium sessions?在 Lithium 会话中存储密码是否安全?
【发布时间】:2013-03-15 05:28:38
【问题描述】:

我想使用 Lithium 的“cookie”会话适配器。用户登录后,我将使用他的哈希密码创建一个 cookie。如果这个 cookie 存在并且哈希密码与数据库中的密码匹配,我会自动让他登录。

这样安全吗?


好的,我说的不是 cookie 中的实际哈希,而是加密的哈希。我不希望任何人知道该哈希的外观:) Lithium 具有“策略”,可以使用“秘密”对您存储在会话中的任何数据进行加密,因此哈希值将被加密。基本上我在问锂的加密是否足够好。有人用过锂吗?

【问题讨论】:

    标签: php session lithium


    【解决方案1】:

    这取决于您的哈希算法。使用 salt 让您的哈希更安全:
    Safe Password Hashing 和

    请记住,密码的哈希值实际上与它们的相同 密码。窃取哈希的人将具有相同的访问权限 用户的帐户,就好像他们窃取了密码一样。因此它 不建议将用户密码的哈希值存储在 cookie 中 除非有一些其他信息没有与 cookie 一起存储 用于身份验证(即 2 因素身份验证)。 Gabe 在这个Answer。

    也可以查看以下链接:
    Is it advisable to store a hashed password in a cookie?
    Secure hash and salt for PHP passwords

    【讨论】:

      【解决方案2】:

      仅当它是哈希密码和他的用户 ID 或用户名的组合时。单独的密码可能存在多次,因此不是唯一的。用户名或 ID(通常)是唯一的。

      【讨论】:

        【解决方案3】:

        没有。这绝对不安全。如果您将哈希密码存储在 cookie 中,则该哈希密码将与用户密码基本相同。如果其他人以某种方式获得该 cookie,他可以在自己的浏览器中设置该 cookie,并作为其他人进行身份验证。

        【讨论】:

          【解决方案4】:

          Lithium 的 Encrypt 策略使用 bcrypt,实际上,它几乎是目前最好的东西(好吧,除了 scrypt,但当 PHP 附带它时请告诉我,我会改变我的看法)。

          在任何情况下,您的加密有多强都无关紧要,因为正如其他人所说,如果您要传输密码的哈希值,那么您可能还不如传输密码本身。我想不出你为什么要这样做。

          【讨论】:

          • 如果用户在登录时勾选了“记住我”选项,让用户在几天内保持登录状态
          • 是的,不,无效。无论您正在实施哪种方案(即仅 cookie 登录,我一直这样做,或者记住我),您永远不会,永远需要将密码本身的哈希值存储在一个 cookie。
          【解决方案5】:

          无论您如何存储密码(加密与否),如果有人获得它,则很有可能有人以另一个人的身份访问您的网站。

          【讨论】:

            猜你喜欢
            • 2013-11-04
            • 1970-01-01
            • 2010-12-28
            • 2010-12-10
            • 2015-06-22
            • 2015-05-15
            • 1970-01-01
            • 2011-01-07
            • 2012-07-30
            相关资源
            最近更新 更多