我有一张相当标准的登记表。我决定取消的一件事是,出于可用性的考虑,需要输入两次密码。
为了减少错误输入错误密码的风险,可以在欢迎邮件中向用户发送密码吗?这将发生在处理表单响应的代码中。然后对密码进行散列(bcrypt)并存储,因此无法在将来检索。
我的推理是,已经访问了用户电子邮件帐户的攻击者可以使用标准的密码重置工具在此服务上重置密码,因此在收件箱中存储副本比使用基于电子邮件的重置更不会带来安全风险。
我的想法有缺陷吗?
发布于 2014-01-02 10:28:15
我看到了一个问题,即您正在通过未加密的链接以纯文本形式发送他们的密码。任何人在用户、PC和您的站点之间的任何一点上监视数据传输,都可以捕获他们的密码。
如果您发送了一个1使用密码,然后他们在登录时必须更改密码,那就更好了。
发布于 2014-01-02 10:27:56
从某种程度上说,你的想法是正确的。如果用户可以通过访问电子邮件帐户重置密码,那么纯文本密码在电子邮件帐户中就没有很大的风险。
然而,对此还有其他关切。首先,如果您通过电子邮件发送密码,它很可能通过不受信任的网络以明文传输(您无法控制电子邮件路径或存储),这可能会导致密码受到损害。
此外,还有一些可能的情况,攻击者可以访问用户电子邮件的文本,而不必对用户的帐户进行交互访问。例如,如果IMAP/POP客户端在本地计算机上缓存数据,而攻击者可以访问该数据。
最后,您可能会遇到安全感知问题。标准的原则是,密码不应该被记录或存储在明文,所以通过打破,你打开自己的指责,安全性差,无论它是否是。
总的来说,更好的解决方案可能是为用户提供在输入密码时显示密码的选项(如Windows 8所做的那样)。因此,默认情况下,密码是隐藏的,但是他们可以采取一个操作(例如,单击一个按钮),在输入密码时在屏幕上显示密码,这样他们就可以确认输入密码是正确的。
https://security.stackexchange.com/questions/47947
复制相似问题