PHP在cookie中存储密码

时间:2011-03-08 13:10:50

标签: php mysql

是否有相对安全的方法将密码存储在cookie中的浏览器cookie中(用于记住登录信息),而无需在数据库中创建额外的哈希列? 感谢。

4 个答案:

答案 0 :(得分:10)

除非 生成了明文,否则 永远不会 在您的数据库中存储纯文本甚至可解密的密码用户无法输入自定义内容!

最常见的方法是将密码的哈希值存储在同样位于数据库中的cookie中。但是,这允许任何人只需知道哈希就可以登录 - 无需访问原始密码。所以不要这样做,即使它显然是最简单的。

安全方法是在数据库中存储随机的,唯一的“登录哈希”,并在cookie中设置此哈希加上用户的ID。这不仅会使密码哈希无法登录,而且还允许您创建“随处注销”功能。

答案 1 :(得分:5)

在cookie中存储密码的盐渍哈希

$salt = 'snfcikkfbnvekrew';
$cookie_value = md5($salt . $password);

答案 2 :(得分:2)

在cookie中存储密码或密码表示是一个非常糟糕的主意。当然,您可以保护cookie,以便无法读取密码,但如果cookie被截获,其他人可以设置该cookie,为他们提供前一个用户的完全权限,直到该密码被更改为止。

通过直接访问机器,即使使用了HTTPS也可以窃取cookie,然后在不知道密码值的情况下窃取一个人的完全访问权限,直到他们更改密码为止。

有可能通过一些模糊的时间特定散列方法来安全地进行,但我的建议是不要这样做。改为使用会话,并尝试存储内部标识符而不是外部标识符。如果会话受到损害,后果仍然严重,但通常会因会话过期而减少,并且会话非常适合其他形式的安全性(IP锁定,请求排序等)。

答案 3 :(得分:0)

简短回答:永远不要将密码存储在cookie中,或者 - 如果没有任何保留,请在任何地方。唐'吨。在您的方案中,JSON web tokens (JWT)可用于在客户端存储授权。