Joomla在其登录屏幕上有一个内置功能“我忘记了我的用户名”,这样您就可以输入您的电子邮件地址,并通过电子邮件将用户名发送给您。
我正在考虑更改它,以便立即在屏幕上显示用户名,而不进行任何形式的身份验证。这将大大减少长时间返回的用户的摩擦,但它允许任何人输入任何电子邮件地址并查看相关的用户名(绝对不是相反的方式)。
这会产生任何安全风险吗?这根本不是一个好主意吗?
答案 0 :(得分:8)
当前的实施要求用户拥有电子邮件地址,并阅读生成的电子邮件,以检索用户名。
您的实施可让攻击者立即知道哪个用户名与电子邮件地址相关联。因此,如果攻击者知道一个人的用户名,就可以猜到电子邮件地址。
更糟糕的是,假设攻击者以某种方式知道密码而不是电子邮件地址。成功猜出电子邮件地址后,可以合理地猜测电子邮件帐户的密码与您网站的密码类似。因此,您已帮助攻击者劫持了电子邮件帐户,该帐户可能包含其他帐户的更多信息,等等。
通常,更改任何与安全相关的功能以使事情比标准实施“更容易”可能会带来安全风险。在实施前通过SO进行研究的+1!
答案 1 :(得分:3)
乍一看,这似乎是一个“坏主意”,因为你允许任何人:
如果用户名和邮件地址在您的网站上被视为“私人”信息但尚未共享,那么我就不会通过电子邮件功能实现用户名查找。实际上,您将安全条降低了1个因素:
或许更重要的是,您创建了一个需要解决的隐私问题(如@SoapBox所述)。
但实际上,您的网站可能已将“用户名”用作公共句柄或昵称。您可能已经让用户在其个人资料中发布他们的电子邮件。如果是这种情况,用户名查找不会泄漏任何新信息,您可以争辩不会创建新的安全性或隐私问题。
这会让一切变得有点过于简单,就像在如何破解我的网站上发布脚本小子指南一样:
底线 - 我认为你最好保持这个功能。
答案 2 :(得分:2)
我认为对于不那么精明的用户来说,这是一个轻微的安全风险。对于密码较弱的用户,尤其是与用户名或电子邮件地址相关的用户,暴露他们的用户名会使他们对其帐户被劫持持开放态度。除此之外,我想不出它会成为问题的原因。如果用户有良好的密码,则根本不重要。
我想有一点匿名的担忧。例如,在一个论坛上,我不希望有“知道”我的人在没有告诉他们的情况下找到我的用户名。在这种情况下,他们可以接收我的电子邮件并获得它。但这是否是一个问题取决于您的网站和您的用户群。