如何处理忘记的密码

时间:2015-09-13 04:21:46

标签: java mysql javafx forgot-password

我有一个用Java编写的程序,它与我的MySQL服务器通信,用于帐户,版本等等。程序设置为每个用户都有一个帐户到服务器,以便我的程序可以与它,但帐户非常有限的访问权限。无论如何,当有人"登录"在我的程序中,它创建了与MySQL服务器的连接。但是,如果他们忘记了密码,我希望(或者更确切地说,希望)我的应用程序能够重置密码。但是,这会产生问题,因为没有帐户登录到能够修改密码的服务器。此外,由于明显的反编译威胁,我(显然)并不想将某些管理员登录硬编码到程序中。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

首先,您没有网站这一事实使这个问题变得更加困难。实际上,您将通过设置网站来极大地简化问题,即使它是用于重置用户的唯一目的。数据库密码。

其次,如果您没有以独立的方式以合理的置信度识别用户,则问题无法解决。如果有人按下"重置我的密码"按钮然后说'#34;我是弗雷德",你不知道弗雷德是按下了按钮......还是其他人。即使你可以确定"重置"请求弗雷德的电脑。

第三,如何安全地将密码传递给用户?通过电子邮件发送密码并不能减少密码。即使电子邮件的端到端安全传输,电子邮件仍然可以在用户的​​邮箱中存放数天,数月,数年。 (密码重置URL至少具有与之关联的超时...并且密码本身不在电子邮件中。)

简而言之:我的建议是设置一个密码重置网站......或者让用户向服务台提交请求并向他们发送短信息。

由于您应该让用户定期更改密码(最佳做法),您可能需要该密码重置网站!

答案 1 :(得分:0)

好吧,因为你没有任何网站支持或其他什么,你不能真正做到这一点......所以在你的应用程序中实现一个按钮,这将向用户触发一些问题,例如“登录,电子邮件等“将直接邮寄给您,以便您处理案件......

或者您只是在您的网络服务器上托管一个小应用程序可以访问的脚本,并负责生成新的随机密码并将其发送给客户端。 Personaly,我永远不会选择第一个,压力太大,剧本!