【问题标题】:How to Handle a Forgotten Password如何处理忘记密码
【发布时间】:2015-12-09 08:39:24
【问题描述】:

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

【问题讨论】:

    标签: java mysql javafx forgot-password


    【解决方案1】:

    好吧,由于您没有任何网站支持或其他任何东西,因此您无法真正做到...所以在您的应用中实现一个按钮,这将向用户触发一些问题,例如“登录,电子邮件等”将直接邮寄给您,以便您处理此案...

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

    【讨论】:

      【解决方案2】:

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

      其次,如果您没有以合理的置信度以独立的方式识别用户,那么问题是无法解决的。如果有人按下“重置我的密码”按钮并说“我是 Fred”,你不知道是 Fred 按下了按钮……还是其他人。即使您可以确定 Fred 的计算机上请求了“重置”。

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


      简而言之:我的建议是建立一个密码重置网站……或者让用户向帮助台提交请求并将新密码发送给他们。

      而且由于您应该让用户定期更改密码(最佳实践),您可能需要那个密码重置网站!

      【讨论】:

      • 老实说,我不介意建立一个网站,并且我最终计划这样做,但是我正在上高中,并且几乎没有建立网站的经验。有什么建议吗?
      • 我建议你专注于你的课程作业。如果这个项目是课程相关的,那么把这个“要求”放到“不会实施”的类别中。
      • 不幸的是,我正在研究的项目旨在帮助像我一样的学生在春季的 AP 考试中努力学习。因此,安全性不是一个大问题,但我希望在首次发布之前解决我的困境。
      • 嗯,唯一可行的解​​决方案是网站,IMO。
      猜你喜欢
      • 2021-07-30
      • 2017-12-05
      • 1970-01-01
      • 2012-07-25
      • 2017-04-03
      • 2012-12-20
      • 2013-05-17
      • 2011-08-26
      • 2015-12-31
      相关资源
      最近更新 更多