跳到主要内容
Q drop
登录
防滥用

速率限制

概要

速率限制(rate limiting),是按时间单位限制来自特定来源的请求数的技术。例如设定“同一 IP 地址每秒最多 10 个请求”这样的上限,拒绝超出的请求。它被用于防止服务器过载、抑制垃圾帖子、确保 API 的公平使用等广泛的目的。

主要的算法

实现速率限制有多种算法。最简单的是固定窗口方式,每隔一定时间(例如 1 分钟)重置计数器。实现容易,但存在跨越窗口的分界时,短时间内会有上限 2 倍的请求通过的问题。

滑动窗口方式会一直追踪最近 N 秒内的请求数。它解决了固定窗口的分界问题,但实现稍微复杂一些。令牌桶方式准备一个以固定速度补充令牌的桶,每个请求消耗一个令牌。它能在一定程度上容许突发的请求,同时防止持续的过载。

在提问箱这类服务中的应用

在提问箱这类服务中,也会对匿名提问的投递使用速率限制。对来自同一来源的投递频率,设置正常使用几乎不会达到的上限,就能在抑制对一般用户影响的同时,放慢手动骚扰投递的节奏。

速率限制与工作量证明和蜜罐字段不同,对人手动进行的骚扰也有效。在同时关系到机器人程序对策和针对人的对策这一点上,它是构成多层防御的要素之一。

这篇文章对你有帮助吗?

相关术语

相关文章

想创建你自己的提问箱吗?

只需邮箱地址即可注册,无需密码。

免费开始