【问题标题】:Are pre form submit DB look ups bad?预表单提交数据库查找不好吗?
【发布时间】:2014-01-05 10:15:43
【问题描述】:

在我的注册表单中,我有一个 ajax db 查找电子邮件和用户名的输入焦点。 .这是个坏主意吗?为什么?如果用户查找 > 允许查找,我还计划附加锁定。

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于安全的,属于Security.SE
  • @Gumbo 我实际上正在寻找关于此的一般答案。无论是好是坏,使用它的缺点等等。不仅仅是从网络安全的角度来看。

标签: security web-standards


【解决方案1】:

不,这不是一个坏主意。相反,与您必须提交整个表单只是为了告诉用户电子邮件已被占用相比,它改善了用户体验并减少了带宽使用。所有主要网站都这样做。以谷歌的注册表为例:https://accounts.google.com/SignUp?continue=https%3A%2F%2Fwww.google.com%2F&hl=en

【讨论】:

  • 是的,实际上这就是为什么我也为我的用户做这件事,因为其他更大的网站也有这个功能。但是有什么缺点吗?
  • 我认为没有缺点。
【解决方案2】:

这可能导致User Enumeration 漏洞 - 即攻击者可以通过暴力破解或通过测试另一个用户名和电子邮件地址列表来确定它们是否处于活动状态,从而轻松地从您的系统中获取已知的用户名和电子邮件地址列表用户。

您提到添加锁定,但您将根据什么标准来确定尝试查找的用户数?按 cookie 或会话分组是不安全的,因为攻击者可以简单地清除他们的 cookie 或启动新会话。 IP 是一种更好的方法(例如,每个唯一 IP 每 30 分钟允许 10 次查找),但由于攻击者可以使用分布式攻击,他们可以绕过这种方法。

如果这对您的系统来说是一个问题,请查看我的answer here 以获得更安全的方法。这涉及用户仅在表单上输入他们的电子邮件地址,该表单将通过发送到该地址的链接继续注册过程。如果您将其作为第一步,那么您将知道该用户在下一步尝试了哪些用户名,因为这些查找随后将与输入的电子邮件地址相关联,并且您可以通过唯一性来限制用户名查找的数量电子邮件。这将使攻击者难以枚举用户名,并且几乎不可能枚举电子邮件地址。

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 2017-02-23
    • 2021-12-14
    • 2018-04-20
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多