Firebase 托管的速率限制

Rate Limiting on Firebase Hosting

我一直在寻找通过 IP 对请求进行速率限制的方法,但找不到任何资源。基本上我正在寻找的是一种实现防火墙逻辑的方法。我知道我可以使用数据库规则限制经过身份验证的用户请求,但我该如何限制页面点击?例如,我只想允许每个 IP 每分钟 150 个请求。有什么办法吗?否则,攻击那些使用 Blaze 计划的小企业不是很容易吗?

这里是 Firebaser。

目前无法通过 Firebase 托管基于 IP 地址进行速率限制。我们的 CDN 合作伙伴包括一些针对 (D)DoS 攻击的内置保护,但目前无法配置。

我们发现这通常不是问题。如果您运行使用您怀疑是滥用行为,请联系 Firebase 支持,我们将与您一起解决问题,让每个人都满意。

好像现在的限速是用了一些像express-rate-limiter这样的中间件。然后在您的 server.ts(或 .js,如果 JavaScript)文件中,您可以执行以下操作:

import * as express from 'express';
import * as rateLimit from 'express-rate-limit';

const server: Express = express(); 

server.set('trust proxy', 1); // Enable because the application is behind reverse proxy (Firebase).
server.use(
  rateLimit({
    max: 100, // Max 100 connections per windowMs can be done before sending HTTP 429 (Too Many Requests) response code. After 100 requests within 15 minutes block the IP.
    message:
      'This IP has been temporarily blocked due to too many requests, please try again later.',
    windowMs: 15 * 60 * 1000 // In milliseconds, keep records of requests in memory for 15 minutes.
  })
);

或者,如果您不想阻止 IP,而是使用 express-slow-down.

来减慢它的速度