如何防止攻击者使用我的密码重置机制给炸弹人发送电子邮件?

问题描述

我的网络应用程序有一个非常标准的功能,允许忘记密码的用户通过向自己发送密码重置电子邮件来重置密码,其中包含指向创建新密码的页面的链接。

我担心 person1 可以通过声称需要密码重置电子邮件来骚扰 person2,但提供 person2 的电子邮件地址,并使用机器人自动执行此操作,向 person2 发送大量电子邮件。它不会泄露任何秘密,但可能会非常烦人,即使是他们收件箱中的 DoS,我的应用程序也会受到指责。

我知道我可以限制发送电子邮件的 api 调用,但是如何限制?进行 api 调用的用户无法通过身份验证,因为如果他们已登录,则不需要重置。如果 api 调用是开放的,则无法验证调用者,因为任何通用请求信息(如 IP)都可能被欺骗(或通过代理服务器发送)。

如果我全局限制该 api 调用,那么如果大量合法用户碰巧同时使用该功能,则合法用户可能会被锁定。

遇到这种情况你会怎么处理?

解决方法

限制您将向同一电子邮件地址发送的邮件数量,无论它们的请求方式如何。这不需要您限制总共要处理的重置次数;仅按地址。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...