1

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

我担心 person1 可能会使用此页面骚扰 person2,声称需要密码重置电子邮件,但提供 person2 的电子邮件地址,然后使用机器人自动执行此操作,向 person2 发送大量电子邮件。它不会泄露任何秘密,但它可能会很烦人,甚至是他们收件箱上的 DoS,我的应用程序会受到指责。

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

如果我在全局范围内限制该 api 调用,那么如果大量合法用户恰好同时使用该功能,那么他们可能会被锁定。

你如何处理这样的情况?

4

1 回答 1

1

限制您将发送到同一电子邮件地址的邮件数量,无论它们是如何被请求的。这不需要您限制总共要处理的重置次数;只是每个地址。

于 2021-04-27T20:59:44.123 回答