一尘不染

对Web请求实施限速算法的最佳方法是什么?

algorithm

我正在寻找对Web应用程序实施移动时间窗口速率限制算法的最佳方法,以减少垃圾邮件或暴力攻击。

使用示例为“最近5分钟内来自给定IP的最大失败登录尝试次数”,“最近N分钟内(帖子/投票/等的最大登录次数)”。

我宁愿使用移动时间窗口算法,而不是每隔X分钟对统计数据进行硬重置(例如twitter api)。

这将用于C#/ ASP.Net应用程序。


阅读 243

收藏
2020-07-28

共1个答案

一尘不染

使用像memcached这样的基于内存的快速哈希表。键将成为您要限制的目标(例如IP),每个存储值的到期时间应为最大限制时间。

为每个键存储的值将包含他们在执行操作时进行的最后N次尝试的序列化列表,以及每次尝试的时间。

2020-07-28