首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止蛮力登录尝试

防止蛮力登录尝试
EN

Stack Overflow用户
提问于 2015-06-11 12:37:35
回答 2查看 1.6K关注 0票数 1

我想防止黑客侵入我的用户帐户。人们常说:

登录尝试失败后,最好的方法是暂时锁定帐户

我明白这一点,这似乎是个好主意。例如,使用IP是一个非常糟糕的想法--亚洲至少有一个国家的NAT‘’ed,所以IP不能用于任何事情。

不幸的是,封锁带来了一个真正的问题。它揭示的信息,无论帐户是否存在。我们不想这样做,这就是为什么我们总是写“电子邮件和密码不匹配”或类似的东西。

我不能锁定没有存在的帐户-否则我将不得不存储有关非现有帐户的信息与失败的登录尝试。然后,僵尸网络可能会在我的数据库中导致数十亿条记录--这些记录是不存在的账户。

处理这个问题的可能性是什么?为了防止暴力攻击,同时又不透露信息,是否存在一个账户?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-11 13:39:04

我的团队刚刚解决了同样的问题,考虑到最终我们的解决方案是多么的简单,要达到这个目标还有很长的路要走。

这里有很多需要考虑的因素,其中大部分你已经讨论过了。幸运的是,所有的DDoS/DoS都是由我们的IaaS提供商处理的,所以我们不必担心这些。我的第一个建议是,如果您没有使用这样的服务,我建议您这样做,正确地实现这些东西并不简单。

在为我们处理所有基础设施之后,这使我们能够专注于应用程序本身。然而,我们的第一本能是看一种锁定方法,然而,经过一些讨论,甚至只是简单地了解了它的工作方式、实现等,我们发现其中存在着许多潜在的缺陷(您提到的IP方法就是其中之一),我们决定放弃它。

然后我们问了一个问题:“我们到底想做什么?”,最终我们想要防止机器人和黑客的暴力攻击,但同时为真正的users....when维护一个良好的用户界面--我们真不敢相信它有多简单--使用验证码

实现非常简单,在X失败之后,我们将Captcha添加到表单中,并强制用户与他们的凭据一起验证这一点。我们认为这给了我们在安全性和可用性之间的最佳平衡,因为:

  • 我们不会再把真正的用户锁在外面,让他们等更长的时间才能获得我们的服务。
  • 我们很可能会阻止大多数自动化/机器人蛮力的尝试,例如字典攻击。
  • 通过控制登录请求,我们进一步降低了DoS的机会。
  • 我们将恶意用户的速度降低到他们认为“这真的值得花时间吗?”
票数 3
EN

Stack Overflow用户

发布于 2015-06-11 13:04:03

两点:

锁定帐户不会发出任何信号;它只意味着即使是正确的身份验证者也无法登录。您没有回答"OK,这是正确的密码,但您的帐户是锁定的,“您继续回答”不正确的名称/密码组合“像以前一样。真正的用户,使用真正的身份验证者,将等待10分钟的重置,或者打电话给服务台进行手动复位。蛮力攻击者将继续尝试其他密码。

假设远程攻击,在三个(或五个,或任何您认为合适的)不成功的名称/密码组合之后,删除连接。这是帐户是否存在,密码是否正确(和帐户锁定)或不正确。同样,对攻击者没有任何有用的信息,给健忘或易出错的授权用户带来了微小的不便(重新连接)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30781010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档