0

我需要用户在编辑某些信息之前确认他们当前的密码。将其与会话身份验证信息进行比较应该是最好的方法,但当前密码不会存储在身份验证会话中。我能想到解决这个问题的唯一方法是通过 id 找到用户并检索他们当前的密码进行比较,但我认为查询太昂贵了。有没有更好的办法?

4

1 回答 1

3

首先,我不会以您想要的方式回答问题,相反,如果您要执行编辑、删除等操作,我将帮助您制定适当的标准来提升用户的“角色”或“权力”。等等。等等。

  1. 您不应该使用会话来存储密码。(永远,永远,永远!)

  2. 在进行用户查找时,密码存储,登录,你有什么,对数据库进行查询 - 这并不是你说的“昂贵”。我有一个超过 2000 行(相对较小,非常小......)的数据库,它正在处理这个问题,甚至不费吹灰之力!

  3. 不要使用像 MD5、SHA[1,2] 这样的密码破译密码函数。这些功能并不是专门为密码存储而设计的。而是使用 crypt 函数,特别是使用 Blowfish Cipher 的Bcrypt 。这是为正确存储密码而设计的。

于 2013-05-19T15:44:51.847 回答