您尝试在浏览器端做的任何事情实际上都是毫无意义的。它不会阻止单个恶意用户,只会让忘记密码并正在尝试他们能想到的一切的无知用户感到沮丧。
处理这种事情最好的办法就是“站在巨人的肩膀上”。像 Google/Facebook 这样的大牌是如何处理这个问题的?如果您只关注安全性,而不真正关心用户体验,那么这将不是您的理想答案。但是,如果您必须在两者之间取得平衡,我会这样做。
看看谷歌是怎么做的。您可以为每个用户和 每个 IP 地址尝试几次(如果您还没有开始记录,则需要开始记录)。在几次尝试失败后,您向他们展示 CAPTCHA。如果他们继续尝试,您就不再与机器人打交道,您可以相应地进行调整。您必须通过帐户和 IP 来处理此问题,因为恶意用户只会更改其 IP 以继续攻击一个帐户,因此您需要能够处理这两种情况。
尝试通过向用户展示(希望)使用“忘记密码”功能是多么容易来帮助用户。也许如果您看到来自同一个 IP 的用户名尝试次数足够多,您可以将其升级为“锁定”模式。但是要小心,恶意用户可以使用多个IP地址,有时普通用户都通过一个IP连接。还要确保他们不能锁定您的(管理员)帐户(或您数据库中的每个人)。