【问题标题】:How to prevent attackers from using my password reset mechanism to email bomb people?如何防止攻击者使用我的密码重置机制向炸弹人发送电子邮件?
【发布时间】:2021-07-21 05:22:03
【问题描述】:

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

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

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

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

遇到这种情况怎么办?

【问题讨论】:

标签: rest security password-recovery denial-of-service api-security


【解决方案1】:

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

【讨论】:

  • 啊,这是一个有趣的想法。什么是限制协议,足以允许合法使用(包括将其搞砸几次),但还不足以使其仍然是一个问题?任何简单的请求/时间规则,例如每六个小时不超过一封电子邮件仍然容易受到 person1 每六个小时向 person2 发送一封电子邮件的攻击,这可能不是 DoS,但它仍然会变得非常烦人。
猜你喜欢
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
  • 2017-09-28
  • 2019-12-01
  • 2015-11-26
  • 2018-04-27
相关资源
最近更新 更多