跳转至

WAF3.0 API

POST 列出 CRS 设置规则

POST /prod-api/waf/wafv3/custody/rules/describeCrsSetupRules

Body 请求参数

{
  "pageNum": 1,
  "pageSize": 20,
  "wafId": 22,
  "params": {}
}
字段 类型 必选 说明
wafId integer(int64) 策略组 ID
pageNum integer 页码,从 1 开始
pageSize integer 每页条数
params object 扩展参数,一般传 {}

请求参数

名称 位置 类型 必选 中文名 说明
Authorization header string 鉴权 Bearer Token
body body object 请求体 见上文

返回示例

200 Response

{
  "total": 13,
  "rows": [
    {
      "ruleId": 900200,
      "ruleTitle": "允许的请求内容",
      "ruleMessage": "限制请求内容类型\n建议:\n对于RESTful API,添加以下方法:PUT、PATCH、DELETE\n...",
      "defaultVariable": [
        {
          "name": "tx.allowed_methods",
          "values": ["GET", "HEAD", "POST", "OPTIONS"]
        }
      ],
      "variable": [
        {
          "name": "tx.allowed_methods",
          "values": ["GET", "HEAD", "POST", "OPTIONS"]
        }
      ],
      "variableModel": [
        {
          "name": "tx.allowed_methods",
          "type": "arrayOfString",
          "explains": "请求方法",
          "optionalVariables": "[\"GET\",\"HEAD\",\"POST\",\"OPTIONS\",\"PUT\",\"PATCH\",\"DELETE\",...]"
        }
      ]
    }
  ],
  "code": 200,
  "msg": "成功"
}

返回结果

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

返回数据结构

状态码 200

名称 类型 必选 说明
total integer 规则总条数
rows [object] 当前页规则列表
code integer 200 表示成功
msg string 提示信息

rows[] 每条规则

字段 类型 说明
ruleId integer CRS 设置规则 ID;更新基础防护规则 时必填
ruleTitle string 规则标题(控制台列表展示)
ruleMessage string 规则说明与配置建议,可含换行 \n
defaultVariable [object] 平台默认值;未单独配置时参考此项
variable [object] 当前策略组下已生效的配置;提交修改时使用该结构
variableModel [object] 参数元数据,供前端校验与渲染控件

defaultVariable / variable(结构相同)

每项表示一个 ModSecurity 事务变量及其取值:

字段 类型 说明
name string 变量名,如 tx.allowed_methodstx.max_num_args
values string[] 当前取值列表。arrayOfString 类型为多个字符串;integer 类型通常仅 1 个数字字符串
  • defaultVariable:系统预设,用于「恢复默认」展示。
  • variable:绑定到当前 wafId 的实际配置;调用 modifyCrsSetupRule 时传回修改后的 variable 即可。

variableModel[](参数定义)

字段 类型 说明
name string variable[].name 对应
type string arrayOfString:多选字符串列表;integer:单个整数
explains string 参数中文说明(如「请求方法」「最大值」)
optionalVariables string 可选值范围的 JSON 字符串。arrayOfString 时为允许选中的全部枚举;integer 时一般为 ["最小值","最大值"],如 ["0","255"]

type 与填写方式

type values 填写 校验规则
arrayOfString optionalVariables 解析出的列表中多选 每个 values 元素须在可选列表内
integer 单个数字字符串,如 "255" 须在 optionalVariables 给出的最小–最大范围内

modifyCrsSetupRule 的配合

  1. 调用本接口获取 rows
  2. 在控制台修改某条规则的 variable(在 variableModel 约束内选值或填数字)。
  3. POST modifyCrsSetupRule,提交 wafIdruleId 及更新后的 variable 数组(结构与 rows[].variable 相同)。

示例:将「允许的请求内容」增加 PUTPATCH,则 variable 为:

{
  "name": "tx.allowed_methods",
  "values": ["GET", "HEAD", "POST", "OPTIONS", "PUT", "PATCH"]
}