限速注册API

Ash*_*ish 5 javascript rest web-services node.js sails.js

我们是一家小型初创公司,我们在后端使用 SailsJS(位于 NodeJS 之上)。我们的架构是 API 驱动的。我想对大多数 API 实施速率限制。我想从注册的一个小用例开始。注册是一个公共 API,目前任何人都可以访问它来创建帐户。

  1. 我的问题是如何通过限制此公共 API 的速率来防止 DoS 攻击?
  2. 假设我根据 IP 地址限制此 API 的速率。那么问题就在于,如果某些用户位于同一组织中。他们可以有相同的IP地址。那么,我们如何确保它们受到适当的速率限制?

我非常感谢您的建议和意见。

jfr*_*d00 5

如果注册不必是纯粹的编程 API,并且可以要求通过网页,那么您可以专门使用验证码或其他一些“证明您是人类”的机制来进行注册操作。这将防止注册 API 上的程序化 DoS,因为每个请求都需要人工干预。

其他 API 请求需要速率限制器,以防止滥用已创建的帐户。这些后续 API 调用可能会引用特定帐户,因此您可以通过对帐户(而不是 IP 地址)进行速率限制来处理共享的公司 IP 地址。