限速规则配置最佳实践

限速规则限定一个时间段内只允许放行一定数量的请求,但是如果该请求命中了白名单规则,也命中限速规则时,会触发限速规则计数,提前突破限速阈值,导致IP被封禁。

背景信息

用户配置了一个URI包含 /api 、IP 限速10分钟内5次的自定义规则,同时通过白名单配置了URI等于/api/v1/pay 针对自定义规则加白的规则,希望实现的效果是针对/api/v1/pay无限制访问,但是对于其他/api请求要有限速效果。

白名单规则配置

image

自定义规则配置

image

用户预期/api/v1/pay无限制访问,其他/api路径参与请求计数,10分钟内超过5次则封禁IP,拒绝访问。

实际表现:多次访问/api/v1/pay无问题,但第一次访问/api/v2/login路径就被拒绝访问。 CE97C5B4-63C7-43F8-AB60-5F433B363718

原因分析

命中白名单规则的请求同时命中限速规则,会触发限速规则计数。用户短时间多次访问/api/v1/pay,命中了自定义规则中URI包含/api的匹配条件,触发了限速规则计数,超过限速阈值导致IP封禁,所以首次访问/api/v2/login时就直接被拒绝。

解决方案

避免使用白名单规则组合自定义规则的方案,直接调整自定义规则,精准匹配需要进行限速的路径。

重要

以下配置数据均为示例信息,请根据实际业务需求进行相应配置。

步骤一:配置自定义规则

  1. 访问WAF控制台-Web核心防护页面,在自定义规则区域,单击新建模板完成以下配置。

    image

  2. 单击新建规则为自定义模板新建规则配置。

    重要

    黑名单生效范围请选择仅作用于当前规则的匹配条件

    image

步骤二:测试验证

  1. 查看是否影响其他路径访问。

    多次访问 /api/v1/pay 接口不会触发自定义规则的计数条件,因此不会导致IP被封禁,从而不影响 /api/v2/login 等其它业务路径的正常访问,符合预期效果。

    18FCFF2E-728A-4E2A-A60F-1D85AF291F3C

  2. 查看是否会对特定接口进行限速处理。

    1. 多次访问/api/v2/login,页面显示405拦截响应,复制您的请求ID用于对象拦截查询。image

    2. WAF控制台-对象拦截查询页面,粘贴输入请求ID进行查询,查看防护模块规则ID

      image

    3. WAF控制台-Web核心防护页面,搜索规则ID,可搜到对应的自定义模板规则,则自定义配置成功。

      image