【发布时间】:2011-05-08 05:27:27
【问题描述】:
如果我有一个随机的、16 个字符长的字母数字盐(大小写不同),它是为每个用户生成和存储的,我是否也需要一个站点范围的盐?
也就是说,这样好吗?
sha1($user_salt . $password)
我应该这样做吗?
sha1($user_salt . $password . $site_salt)
还有,
目前,我有一个加密的 cookie,它在数据库中查找会话。在这个会话中,有一个 user_id 和一个 user_token。然后我使用 user_id 查询数据库——如果数据库中 user_id+hash 的 sha1 === user_token,则允许用户通过。
我在每次页面加载时对 user_id 进行第二次查询,这样如果我删除、禁止或更改用户的密码,该操作会立即生效。
这是我通过网站和问题在这里找到的。你怎么看?我错过了什么吗?
我需要添加角色检查,但这可能会添加另一个查询(第三个仅用于身份验证)。有什么建议吗?
【问题讨论】:
标签: php session authentication passwords salt