Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 如何防止攻击者使用我的密码重置机制通过电子邮件轰炸他人?_Rest_Security_Password Recovery_Denial Of Service_Api Security - Fatal编程技术网

Rest 如何防止攻击者使用我的密码重置机制通过电子邮件轰炸他人?

Rest 如何防止攻击者使用我的密码重置机制通过电子邮件轰炸他人?,rest,security,password-recovery,denial-of-service,api-security,Rest,Security,Password Recovery,Denial Of Service,Api Security,我的web应用程序有一个非常标准的功能,允许忘记密码的用户通过向自己发送一封密码重置电子邮件,其中包含指向页面的链接来创建新密码,从而重置密码 我担心person1可能会使用此页面骚扰person2,声称需要密码重置电子邮件,但会提供person2的电子邮件地址,并使用机器人自动执行此操作,向person2发送大量电子邮件。它不会泄露任何秘密,但可能会非常烦人,即使是收件箱中的DoS,我的应用程序也会受到指责 我知道我可以限制发送电子邮件的api调用,但如何限制?无法对进行api调用的用户进行身

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

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

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

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


您如何处理这种情况?

限制您将向同一电子邮件地址发送多少封邮件,而不管请求方式如何。这不需要您限制总共要处理多少重置;每个地址都有。

啊,这是个有趣的主意。什么样的节流协议足以允许合法使用(包括几次修改),但还不足以成为问题?任何简单的请求/时间规则,如每六小时不超过一封电子邮件,仍然会受到每六小时发送一封电子邮件的人的攻击,这可能不是拒绝服务,但仍然会变得非常烦人。好问题,好主意。我将在中添加这种保护