如何检查我的 Web 应用程序的用户是否正在尝试使用不同的凭据登录?

How to check if a user of my web application is trying to login with different credentials?

我从 3 天开始尝试制作或找到好的方法来检测是否有用户试图使用许多登录凭据登录我的 Web 应用程序或进行洪水攻击,因此我可以在这个原因中显示验证码作为示例在我的登录页面中,但没有成功。

我可以知道是否有登录用户名的用户:"xyz" 尝试多次登录,但如果用户尝试使用许多用户名登录,如 "xyz1" 、 "xyz2" 怎么办? , "xyz3" , "admin", "administrator", "root" ....等等

特别是该用户可能会尝试使用不同的会话和隐藏的 IP 或许多 IP。

如果您想了解好的示例,它类似于雅虎和 google 登录页面。

我试图用我糟糕的语言通过谷歌搜索和浏览 Whosebug 中的许多问题来寻找方法,但没有找到有用的文章。

应用程序托管 bean 有帮助吗?使用起来健康吗?以及执行此操作的正确方法,导致应用程序托管 bean 或任何其他方式?

你不能。正如您自己发现的那样:您将无法从您的 Web 应用程序 中可靠地保护您的 Web 应用程序,。您的应用程序可以选择:

  1. 记录针对单个用户名的多次尝试 这是相当基本的,您会在许多 Web 应用程序中找到它;记录针对同一用户名的失败登录尝试,并在一定次数的失败后阻止进一步的登录尝试。不会阻止攻击者继续尝试

  2. 在一段时间内记录来自单个 IP 地址的多次尝试 这也可能相当简单,前提是您可以信任发送的 IP 地址与 HTTP 请求。如您所料,您更有可能无法信任该 IP 地址(可能被欺骗,可能是代理 e.t.c),但您仍然可以记录 IP 地址,并阻止所有registrations/logins 来自给定的 IP 地址。不会阻止攻击者继续尝试

这给您留下的是在您的应用程序之外:与您的网络基础设施提供商合作,以便能够及早检测垃圾邮件和 DDoS 攻击,并阻止相关数据包并可能将这些 IP 地址自动添加到黑名单。

相关:

  • How can I throttle user login attempts in PHP