【雷池】访问频率控制详情与最佳实践
目录
- 简介
- 使用场景
- 访问频率详情
- 最佳实践
简介
- 访问频率限制规则功能可以实现限制满足访问频率限制的请求,例如,当 某 IP 在 30 秒内访问某网站访问统计量超过一定数量时,限制其在接下来的一 段时间内访问该网站。
- 访问频率控制规则分为限制模式和观察模式两种规则模式,限制模式为限制满足访问控制规则的请求;观察模式为对满足访问控制规则的请求信息进行日志记录。
- 访问频率限制规则分为两种规则类型:根据条件限制用户和限制已知用 户,两者区别在于是否为确定的 IP/Session。
使用场景
CC防护:
大流量高频CC攻击,在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。
机器人防护:
新业务上线,抢购等活动时经常会遇到自动化程序,刚发布的内容发现在友商处也存在,抢购活动刚推出便被一扫而空。
高危接口限制
恶意用户一直发送验证码,支付接口频繁调用,登录接口爆破。
黑名单封禁
对已知恶意用户进行阻断。
访问频率详情
规则模式:设置规则属性,观察下不会影响请求,限制模式下会影响用户访问;
- 触发方式:设置用户的生效范围;
- 满足条件用户:统计所有访问者,只要满足触发条件即可被限制;
- 已知用户:对已知晓IP或者session进行限制处理,其他用户则不受影响,常用于黑名单封禁;已知用户需要多配置限制IP列表
- 规则名称:建议根据规则需求命名,方便后续维护;
- 目标类型:选择统计标识位
- ip:选择使用IP做唯一标识封禁用户,虽然IP封禁比较全面,但是出现误封几率更大;
- Session:通过会话做唯一标识来限制用户访问,此功能需要域名开启用户识别才能生效,并且保证用户或者登录用户都能携带如下标识进行访问;
- 触发限制的条件:在多少秒内访问超过多少次,才会触发条件根据目标类型选择值封禁;
- 访问统计范围:该配置主要用来限制此规则在哪些域名中生效;
- 限制方式:将此用户在后续的限制时间按照该规则访问;
- 限制时间:主要控制触发限制的条件用户,在多长时间内一致生效。当超出该时间后,便可恢复正常,直到下次触发限制的条件;
- 高级选项
- 访问次数统计范围:可以选择统计所有用户,或者选择统计top访问数据,默认前10的用户;
案例实践
CC防护&&机器人防护
配置
PS:因为只是做未知的CC防护,所以我们需要确保触发限制条件是恶意攻击,如果不确定正常请求在多少时间内有多少次,可通过访问日志或者关注自己IP进行统计,建议设置在正常请求的2到3倍左右。
验证
通过wrk来完成请求验证,可以看到在30s内发起了2450个请求。
拦截日志,可以很明确的看到当前IP被拦截578次,因为我们设置的封禁30s所以这30s内再次访问都会被拦截,拦截次数会不断累积。
可点击当前设置的访问频率控制策略,查看当前IP封禁时间还剩下多少。
高危接口限制
配置
本次使用Session来拿标识封禁,在使用该策略时,需要如下图所示,优先配置用户标识。
规则配置
验证
通过以下方式模拟访问
频率日志
规则已触发到限制列表
黑名单封禁
配置
需要直接配置黑名单封禁可疑ip,触发方式需要选择已知用户,需要填写IP列表,也可直接选择已有IP组。黑名单配置限制时间,建议把值填写长点,因为超过封禁时间后,该IP将会失效在限制列表中被移除。
验证