我正在为一个Web应用程序的管理部分开发安全系统。如果管理员想要在应用程序中进行重要更改,他将需要回答一个安全问题。
我的问题是:这个问题的答案应该在数据库中进行哈希处理吗?
此外,我考虑为管理员提供更改其问题/答案的可能性,但只有在确认其身份使用密码后,管理员才能这样做。这是一个好方法吗?
我正在为一个Web应用程序的管理部分开发安全系统。如果管理员想要在应用程序中进行重要更改,他将需要回答一个安全问题。
我的问题是:这个问题的答案应该在数据库中进行哈希处理吗?
此外,我考虑为管理员提供更改其问题/答案的可能性,但只有在确认其身份使用密码后,管理员才能这样做。这是一个好方法吗?
是的,但在进行哈希之前一定要对其进行规范化处理 - 转换为小写字母,考虑删除所有非字母数字字符等。如果我输入“ceejayoz”作为我的问题,它应该也能接受“CE EJAYOZ”。
trim()
。如果你要求母亲的姓氏,那么这两个可能就足够了。如果你要求街道名称,你可能需要删除常见的东西,如“Rd.”,“Rd”,“Road”等,这样他们就不必记住使用了哪个变体。 - ceejayoz在我看来,哈希是一个很好的想法。因为除了原始用户之外,没有人真正需要知道它,所以最好将其保持更多的“秘密”,不让别有用心的人窥探。
至于更改哈希的能力,这也是一个很好的想法,要求他/她输入密码来更改哈希是另一种很好的安全方法。
我认为你的想法是正确的。