我和一位同事正在讨论如何在我们公司的专有web应用程序上实现“丢失密码”功能。
我们已经决定,要创建一个帐户,将有三个必需的元素
1)屏幕名称
2)电子邮件地址(用于登录)
1)密码(显然,也用于登录。存储为单向散列__)
一旦我们有了这个信息,试图注册的用户将被发送一个带有链接和激活密钥的验证电子邮件。要激活他们的帐户,他们将需要遵循链接,输入激活密钥,并重新输入他们的电子邮件和密码。如果一切都匹配,那就做预告片吧!激活了一个新的用户帐户。
激活帐户后,让我们说用户忘记了他们的密码。对于如何处理这种情况,我们有两个想法。
构想1
H 111登录,提示用户重置密码。在临时密码被替换之前,阻止完全登录。
概念2
这需要在注册过程中收集秘密问题和秘密回答数据。
用户单击“忘记Password"
。
关注点
我们关注的一个问题是(我们公司内部的)多名员工将使用一个单一的登录帐户。我们中的一些人认为,这消除了秘密问题的方法作为一种选择。
但是,由于电子邮件不安全,通过电子邮件发送的密码(临时的或非临时的)将易受攻击。
问题摘要
考虑到内部操作限制(多个人到单个登录),这些想法中哪一个将是最安全和用户友好的选择?还是,既不够用?
编辑
堆栈溢出可以帮助我评估答案吗?下面表达的意见很少,但没有任何迹象表明答案的质量。
发布于 2010-12-02 18:35:28
在我的系统中,当有人请求丢失密码时,我:
如果所有这些条件都是正确的,我让他们创建一个新的密码。
一般来说,虽然电子邮件并不是非常安全,但如果有人的电子邮件帐户被泄露,你已经有了一个巨大的安全漏洞,但通过告诉他们他们只有30分钟的时间来重新激活他们的帐户,当有人可能滥用信息时,它就会减少窗口:它只能被使用一次,它可以进入一个已知的很好的电子邮件地址,而且它只能用于我所做过的30 minutes...for系统,这是足够安全的,而不会给用户(或管理员)带来太多负担。
发布于 2010-12-01 21:03:35
我使用了发送到电子邮件的临时密码,尽管它不是最安全的。您还可以为临时密码添加一个时间限制,这将稍微增加安全性。我认为多个安全问题,然后向电子邮件发送临时密码将是相当安全的。
发布于 2010-12-01 21:07:11
作为一个用户,我不喜欢安全问题,因为为了使它们真正安全,我必须让答案很难记住。
下面是我要使用的模式:
< code >G29
重要的是要记住,UID和代码之间的映射不应该是可预测的。
https://stackoverflow.com/questions/4329048
复制相似问题