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.
来减慢它的速度
我一直在寻找通过 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.
来减慢它的速度