检查查询参数或条件的密码哈希

时间:2011-03-05 22:08:09

标签: python mongodb

我想问一下,最好在mongodb中查询:

db.users.findOne({'username': 'example', 'password': '5f189664bb2e58d4e2ee879835b13a7e3a790e14'})

或者在if条件下检查密码哈希:

user = db.users.findOne({'username': 'example'})
if user['password'] == passwordHash:
    print "Hello user"

谢谢! Jarus

1 个答案:

答案 0 :(得分:2)

如果找到用户但密码错误,则取决于您要执行的操作。

  • 如果要显示“用户名或密码不正确”,可以使用其中任何一种方法。
  • 如果要显示“密码不正确”,则需要第二种方法,因为第一种方法无法区分用户名有效和密码错误,以及用户不存在。

注意:如果您想保持系统安全,您可能更喜欢第一种方法而不是第二种方法。第二种方法遵循不同的代码路径,具体取决于用户名是否存在以及密码是否错误,或者用户名是否不存在。这可能导致泄漏有关系统中存在哪些用户名的信息,这对攻击者非常有用。