【发布时间】:2021-07-21 05:22:03
【问题描述】:
我的网络应用程序有一个非常标准的功能,它允许忘记密码的用户通过向自己发送一封密码重置电子邮件来重置密码,其中包含指向该页面的链接以创建新密码。
我担心 person1 可能会使用此页面骚扰 person2,声称需要密码重置电子邮件,但提供 person2 的电子邮件地址,然后使用机器人自动执行此操作,向 person2 发送大量电子邮件。它不会泄露任何秘密,但可能会很烦人,甚至是他们收件箱中的 DoS,而我的应用程序会受到指责。
我知道我可以限制发送电子邮件的 api 调用,但是怎么做?无法对进行 api 调用的用户进行身份验证,因为如果他们已登录,则不需要重置。如果 api 调用是开放的,那么就无法验证调用者,因为任何一般请求信息(如 IP)都可能被欺骗(或通过代理服务器发送)。
如果我在全局范围内限制该 api 调用,那么如果大量合法用户恰好同时使用该功能,那么他们可能会被锁定。
遇到这种情况怎么办?
【问题讨论】:
-
好问题和好主意。我将在authentication-flows-js中添加这种保护
标签: rest security password-recovery denial-of-service api-security