无需通过电子邮件发送密码即可恢复密码

2024-05-01

所以,我一直在玩asp:PasswordRecovery发现我真的不喜欢它,原因有几个:

1) 即使无法访问 Alice 的电子邮件,也可以重置 Alice 的密码。密码重置的安全问题缓解了这个问题,但并不能真正令我满意。

2) Alice 的新密码以明文形式发回给她。我宁愿向她发送一个指向我的页面的特殊链接(例如 example.com/recovery.aspx?P=lfaj0831uefjc 之类的页面),这将让她更改密码。

我想我可以自己通过创建某种过期密码恢复页面表并将这些页面发送给要求重置的用户来完成此操作。不知何故,这些页面还可以在幕后更改用户密码(例如,通过手动重置密码,然后使用新密码的文本来更改密码,因为在不知道旧密码的情况下无法更改密码)。我确信其他人以前也遇到过这个问题,而这种解决方案让我觉得有点老套。有一个更好的方法吗?

理想的解决方案不会通过直接访问数据库来违反封装,而是使用数据库中现有的存储过程......尽管这可能是不可能的。


我目前正在实施一个开源用户管理系统 http://metadata.net/sites/emmet-0.4-SNAPSHOT/在 Spring + SpringSecurity 之上,以下是我解决丢失密码问题的方法。

  1. 用户的帐户必须有预先注册的电子邮件地址。
  2. 要请求重置,用户需要在表单中输入其帐户名。
  3. 生成临时“重置代码”并将其附加到帐户,并通过嵌入超链接的电子邮件发送给用户。
  4. 收到电子邮件后,用户单击链接进入输入新密码的页面。
  5. 在接受新密码之前,将根据存储的代码检查重置代码(来自链接),以确保其正确且未过期。

这可以避免在电子邮件中发送密码(明文)。它还可以防止一个人重置另一个人的密码只是为了造成麻烦,因为密码重置仅在使用链接后才会发生。

但它确实依赖于用户电子邮件帐户的安全,以及电子邮件在传输过程中不被窥探的情况。对于某些应用程序来说,这可能是不可接受的风险。

另一个因素是,您在更改用户的注册电子邮件地址时需要非常小心。至少,用户必须在请求更改地址时输入当前密码……以防止通过无人值守的登录会话进行黑客攻击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需通过电子邮件发送密码即可恢复密码 的相关文章

随机推荐

  • 如何将 .h 文件中的常量导入到 python 模块中

    将 c 风格 不是 c 只是普通的旧 c h 文件中定义的一堆常量导入到 python 模块中的推荐方法是什么 以便它可以在项目的 python 部分中使用 在项目中 我们使用混合语言 在 Perl 中 我可以通过使用 h2xs 实用程序生
  • JavaScript 中的整数

    MDN https developer mozilla org en JavaScript A re introduction to JavaScript Numbers states JavaScript 中的数字是 双精度 64 位格式
  • 如何在eclipse中更改genymotion安装目录路径?

    当Genymotion提示选择安装目录时 我不小心选择了错误的文件夹 我该如何改变它 查看窗口 gt 首选项 gt Genymobile gt Genymotion 然后您将能够修改之前的条目
  • C# Dns.GetHostEntry() - 异常:没有这样的主机已知

    From 文档 https learn microsoft com en us dotnet api system net dns gethostentry view netframework 4 8 Dns GetHostEntry 将主
  • 找出分区号/id

    Spark中有没有一种方法 方法 可以找出分区ID 编号 在这里举这个例子 val input1 sc parallelize List 8 9 10 3 val res input1 reduce x y gt println Insid
  • Mercurial Eclipse 插件

    在哪里可以找到好的 Eclipse Mercurial 插件 MercurialEclipse https bitbucket org mercurialeclipse main 更新站点 https bitbucket org mercu
  • Python导入Django管理命令的问题

    不管出于什么原因 当我刚接触 Python 和 Django 时 我在 models py 文件的顶部编写了一些像这样的导入语句 from django contrib import auth 我会这样使用它 class MyModel m
  • 使用 hg 存储库作为网站

    这与我的安全问题有些相关here https stackoverflow com questions 2361626 security deny access to hg via mod rewrite 对实时网站使用 hg Mercuri
  • Json.Net 根据值选择对象

    我有一个 Json 对象 如下所示 wvw matches wvw match id 1 4 red world id 1011 blue world id 1003 green world id 1002 start time 2013
  • 在 Dart 中打印不带括号的列表

    我想在打印时从列表中删除括号 Dart Code void main var lst new List 3 for int i 0 i lt 3 i lst i i print lst 电流输出 0 1 2 预期输出 0 1 2 您可以使用
  • 多个 aiohttp Application() 在同一进程中运行?

    Can two aiohttp web Application 对象在同一进程中运行 例如在不同的端口上 我看到了一堆 aiohttp 代码的示例 例如 from aiohttp import web app web Application
  • 如何在画布的右上角绘制位图

    我正在尝试绘制位图top right hand corner of the Canvas 到目前为止我已经做了以下事情 100x40 dimensions for the bitmap bitmap BitmapFactory decode
  • 当参数具有相同名称时如何恢复内置函数? [复制]

    这个问题在这里已经有答案了 我知道你是 不应该 https stackoverflow com questions 2417979 can i use variable name type as function argument in p
  • 如何将 Pandas DataFrame 中加载的嵌入转换为 Gensim 模型?

    我有一个 DataFrame 其中索引是单词 并且有 100 个带有浮点数的列 这样对于每个单词 我将其嵌入为 100d 向量 我想将我的 DataFrame 对象转换为gensim 模型对象 https radimrehurek com
  • Qt - 如何在 QGraphicsPixmapItem 中显示 gif(动画)图像

    我正在尝试在 QGraphicsPixmapItem 中使用一张闪烁的图像 显示的图像没有动画效果 下面是原始图像 下面是在 QGraphicsPixmapItem 中使用此图像的 QGraphicsScene 有人能说一下如何实现这一目标
  • QML 适合所有分辨率的屏幕

    大家好 我的 QML 代码有问题 我犯了一个错误 我给元素设置了一定的大小 现在我在将应用程序放在其他设备上时遇到了问题 我会将我的代码粘贴到有宽度和高度的位置 以便您可以更改它以向我展示如何使用动态调整大小 我需要说我正在使用以下代码从
  • numpy float:算术运算比内置函数慢 10 倍?

    我对以下代码的计时非常奇怪 import numpy as np s 0 for i in range 10000000 s np float64 1 replace with np float32 and built in float 内
  • 如何从注册表获取重定向字符串?

    我正在使用从注册表中读取一些值Registry http msdn microsoft com en us library microsoft win32 registry 28v vs 110 29 aspx 我需要访问使用的一些值注册表
  • angularjs ng-grid:行之间的父子关系(隐藏/显示行)

    我正在尝试使用预定义的隐藏行来实现渲染 ng grid 并在某些特定事件上我想显示它们 我试图模拟行之间的父子关系 但所有行都将以通常的方式呈现和放置 默认情况下 子 行将呈现为 折叠 单击父项时 子行将显示为展开的 我正在尝试寻找一些解决
  • 无需通过电子邮件发送密码即可恢复密码

    所以 我一直在玩asp PasswordRecovery发现我真的不喜欢它 原因有几个 1 即使无法访问 Alice 的电子邮件 也可以重置 Alice 的密码 密码重置的安全问题缓解了这个问题 但并不能真正令我满意 2 Alice 的新密