在Lithium会话中存储密码是否安全?

4
我想使用Lithium的“cookie”会话适配器。用户登录后,我将创建一个带有其哈希密码的cookie。如果存在此cookie且哈希密码与数据库中的密码匹配,则将自动登录该用户。这样安全吗?
好的,我不是在谈论在cookie中放置实际哈希值,而是加密哈希值。我不希望任何人找出哈希值的外观 :) Lithium具有“策略”,可以使用“秘密”加密存储在会话中的任何数据,因此哈希将被加密。基本上,我想知道Lithium的加密是否足够好。有人使用过Lithium吗?
5个回答

3
这取决于您的哈希算法。使用盐可以使您的哈希更加安全:安全密码哈希
请记住,密码的哈希值实际上与其密码相同。窃取哈希值的人将具有与窃取密码相同的访问用户账户的权限。因此,不建议在cookie中存储用户密码的哈希值,除非还有其他未存储在cookie中用于身份验证的信息(即双因素认证)。Gabe在这个答案中提到。 还可以查看以下链接:
是否建议在cookie中存储哈希密码?
PHP密码的安全哈希和盐

1

只有当它是哈希密码和用户ID或用户名的组合时才是唯一的。仅有密码可能存在多个副本,因此不是唯一的。用户名或ID通常是唯一的。


1
不,这绝对不安全。如果您将密码哈希存储在 cookie 中,那么该哈希密码基本上就与用户的密码相同。如果其他人以某种方式获取了该 cookie,则可以在自己的浏览器中设置该 cookie,并被认证为其他人。

1

Lithium的Encrypt策略使用bcrypt,从实际角度来看,这几乎是最好的东西(好吧,除了scrypt,但是当PHP支持它时请告诉我,我会改变我的意见)。

无论如何,加密有多强大都无关紧要,因为正如其他人所说,如果您正在传输密码的哈希值,那么您可能就像在传输密码本身一样。我想不出您会希望这样做的原因。


为了让用户保持登录状态数天时间,如果他在登录时勾选了“记住我”的选项。 - Elfy
是的,不行,无效。无论您正在实施什么样的方案(例如仅使用cookie登录,我经常这样做,或记住我),您永远不需要在cookie中存储密码本身的哈希值。 - Nate Abele

1
无论您如何存储密码(加密或非加密),如果有人获取了它,很可能会以另一个人的身份访问您的网站。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接