0

我们正在构建一个公共网络应用程序,并创建了调用 Contentful 以获取各种内容条目(如新闻文章)的自定义 API。

我们的一些 API 将条目 ID - ex 1m21P91ZPgQyJpT6Ck7oku- 作为参数(通常作为路径的一部分或查询字符串)。

这样做的问题是 Contentful 有一个速率限制。如果对 Contentful 的查询未缓存在其 CDN 上,它将被转发到源站,并计入速率限制配额。当速率限制用尽时,Contentful 将返回 429 个代码。

由于我们的 API 从表面上获取条目 ID 并使用它来查询该条目的 Contentful,这意味着攻击者可以很容易地通过生成条目 ID 参数为的随机 API 请求使我们处于速率限制耗尽的永久状态随机更改,从而绕过 CDN 缓存。

我们可以从 API 端做些什么来避免这种 DoS 攻击?

如果唯一的答案是重写我们的 API 以不依赖客户端提供的参数来生成 Contentul 查询,那么我们可以遵循一些模式吗?

PS 我们已经联系 Contentful 提高速率限制的阈值,但显然已经达到了 100 rps 的上限,他们不愿意进一步提高。

4

0 回答 0