跳转至

WAF3.0 API

GET 查询自定义限速规则

GET /prod-api/waf/wafv3/limit/rules/describeLimitRule/{limitRuleId}

根据 limitRuleId 获取单条自定义限速规则的完整配置(匹配条件 + 相同特征 + 限速动作),用于编辑页回显。规则 ID 来自 列出自定义限速控制规则

保存修改请调用 编辑自定义限速规则;条件运算符、匹配对象见 查询条件参数

请求参数

名称 位置 类型 必选 中文名 说明
limitRuleId path integer(int64) 规则 ID 列表接口返回的 limitRuleId
Authorization header string 鉴权 Bearer Token

返回示例

200 Response

{
  "msg": "成功",
  "code": 200,
  "data": {
    "limitRuleId": 15,
    "wafId": null,
    "ruleMessage": "11",
    "sort": 1,
    "status": "enable",
    "rules": {
      "characteristics": [
        {
          "target": "IP_SRC",
          "name": "IP_SRC",
          "parameter": {}
        }
      ],
      "conditions": [
        {
          "conditionId": 120000501,
          "operator": "IP_IN_LIST",
          "target": "IP_SRC",
          "name": "IP_SRC",
          "values": ["52"]
        }
      ],
      "action": {
        "action": "DENY",
        "limitAccess": 12,
        "limitTime": 10,
        "parameters": {
          "behavior": "all",
          "duration": 10
        }
      }
    }
  }
}

回显时 characteristics[].parameter 可能带有 describeParameter 元数据,供前端渲染下拉;保存时只需传 targetname(见 编辑自定义限速规则)。

本示例规则含义(与控制台页面对照)

控制台 / 配置项 API 字段 含义
规则名称「11」 ruleMessage 规则描述
匹配:IP / 在数据集合中 / black conditions[] IP_IN_LISTvalues 为数据集合 ID(如 52
具有相同特征:IP characteristics[] 按源 IP 分别计数
请求 12、期间 10 秒 limitAccesslimitTime 10 秒内超过 12 次触发
操作:拦截 action DENY
在所选持续时间内阻止 / 10 秒 behavior=allduration=10 触发后 10 秒内拦截全部匹配请求

返回结果

状态码 状态码含义 说明
200 OK 成功
401 Unauthorized 未授权
403 Forbidden 无权限

返回数据结构

状态码 200

名称 类型 必选 中文名 说明
» msg string 提示信息 -
» code integer 状态码 200 表示成功
» data object 规则详情 结构与 编辑自定义限速规则 请求体一致,可直接回显后修改再提交

data 顶层字段

字段 类型 说明
limitRuleId integer(int64) 规则唯一 ID;编辑保存时必填
wafId integer 或 null 策略组 ID。查询结果常为 null,保存时须在请求体传入正确的 wafId
ruleMessage string 规则描述/名称
sort integer 同策略组内排序号
status string enable / disable
rules object 规则逻辑:相同特征 + 条件 + 限速动作

data.rules 结构(与自定义规则的区别)

字段 说明
rules.characteristics 相同特征(限速计数维度),见下节
rules.conditions 匹配条件,为一维数组,见下节
rules.action 限速动作(含阈值与行为),见下节
rules.characteristics[](相同特征)

对应控制台 「具有相同特征…」。至少 1 项、至多 10 项。

字段 类型 说明
target string 特征编码,如 IP_SRC(界面显示「IP」)
name string 子字段名,通常与 target 相同
parameter object 仅查询回显;前端用于渲染选项,提交 modifyLimitRule 时不必传
rules.conditions[](匹配条件)

一维数组:数组内所有条件为 与(AND) 关系,须全部满足才进入本条限速统计(与自定义规则的二维 conditions 不同)。

字段 类型 说明
conditionId integer 条件 ID;更新时建议原样带回
operator string 运算符,如 IP_IN_LISTEQ
target string 匹配对象编码
name string 展示名或子字段名
values string[] 比较取值;数据集合类填 dataListId 字符串
rules.action(限速动作)
字段 类型 控制台 说明
limitAccess integer 请求 时间窗内请求次数上限
limitTime integer 期间 统计时间窗(秒)
action string 操作 DENY / LOG
parameters object 使用以下行为 见下表

parameters 字段

字段 类型 控制台 说明
behavior string 单选 excess:仅限制超出部分;all:在所选持续时间内阻止全部请求
duration integer all 时的持续时间 behavior=all 时有效;秒,186400excess 时一般为 null

limitTime(计数窗口)与 duration(惩罚窗口,仅 all)单位均为秒,含义不同。

与编辑接口的配合

  1. 查询:GET .../describeLimitRule/{limitRuleId} → 得到 data
  2. 回显:将 data 填入编辑表单;若 wafIdnull,从列表或页面上下文补全 wafId
  3. 保存:POST .../modifyLimitRule,请求体需包含 limitRuleId(编辑时)、wafIdruleMessagestatusrules

新增规则时不传 limitRuleId;编辑时必传 limitRuleId