更新时间:2022-02-22 GMT+08:00

创建精准防护规则

功能介绍

创建精准防护规则。

URI

  • URI格式

    POST /v1/{project_id}/waf/policy/{policy_id}/custom

  • 参数说明
    表1 Path参数说明

    名称

    是否必选

    参数类型

    说明

    project_id

    String

    用户操作的项目ID。

    policy_id

    String

    策略ID。

请求消息

请求参数
表2 请求参数说明

名称

是否必选

参数类型

说明

name

String

自定义规则的名称。最大长度为256字符。只支持以数字、字母、下划线或中划线命名。

time

Boolean

精准防护规则生效时间。

  • “false”:表示该规则立即生效。
  • “true”:表示自定义生效时间。

start

Long

精准防护规则生效的起始时间。当time=true时,起始时间和终止时间必须有一个非空。

end

Long

精准防护规则生效的终止时间。当time=true时,起始时间和终止时间必须有一个非空。

conditions

List of 表3

匹配条件列表。

action

表4

精准防护规则命中后操作对象。

priority

Integer

执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到65535。

表3 conditions

名称

是否必选

参数类型

说明

category

String

条件类型。固定值path、user-agent、ip、params、cookie、referer、header。

index

String

  • “category”“cookie”时,index表示cookie name。
  • “category”“params”时,index表示param name。
  • “category”“header”时,index表示header中的选项。

logic

String

“contain”“not_contain”“equal”,“not_equal”,“prefix”“not_prefix”“suffix”“not_suffix”分别代表包含、不包含、等于、不等于、前缀为、前缀不为、后缀为、后缀不为。

当条件类型“category”为ip时,“logic”只能为“equal”或者“not_equal”

contents

List

条件匹配的内容。目前该字段只接受一个值,不要写入多个参数。

表4 action

名称

是否必选

参数类型

说明

category

String

操作类型。

  • “block”:拦截。
  • “pass”:放行。

响应消息

响应参数
表5 响应参数说明

名称

参数类型

说明

id

String

精准防护规则的ID。

policy_id

String

精准防护规则的策略ID。

name

String

精准防护规则的名称。

conditions

List of 表6

精准防护规则的匹配条件列表。

action

表7

精准防护规则命中后操作对象。

priority

Integer

执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到65535。

time

Boolean

精准防护规则的生效时间。

  • “false”:表示该规则立即生效。
  • “true”:表示自定义生效时间。

start

Long

精准防护规则生效的起始时间。

end

Long

精准防护规则生效的终止时间。

timestamp

Long

创建精准访问防护规则的时间。

表6 conditions

名称

参数类型

说明

category

String

条件类型。固定值path、user-agent、ip、params、cookie、referer、header。

index

String

  • “category”“cookie”时,index表示cookie name。
  • “category”“params”时,index表示param name。
  • “category”“header”时,index表示header中的选项。

logic

String

“contain”“not_contain”“equal”,“not_equal”,“prefix”“not_prefix”“suffix”“not_suffix”分别代表包含、不包含、等于、不等于、前缀为、前缀不为、后缀为、后缀不为。

当条件类型“category”为ip时,“logic”只能为“equal”或者“not_equal”

contents

List

条件匹配的内容。

表7 action

名称

参数类型

说明

category

String

操作类型。

  • “block”:拦截。
  • “pass”:放行。

示例

如下以创建一条名为“rule1”的精准防护规则为例。

  • 请求样例
    {
          "name":"rule1",
          "time": true,
          "start": 1499817600,
          "end": 1567817600,
          "conditions": [{
              "category": "path",
              "contents": ["/login"],
              "logic": "contain"
            },{
              "category": "ip",
               "logic": "equal",
               "contents": ["X.X.1.1"]
            }
          ],
          "action": {
            "category": "block"
          },
         "priority": 10
    }
  • 响应样例
    {
          "id": "7374ad99c6c448e9a9ca35cb46660a39",
          "policy_id": "9tre832yf96784ec8abd8ba61a98064ef",
          "name":"rule1",
          "time": true,
          "start": 1499817600,
          "end": 1567817600,
          "conditions": [{
              "category": "path",
              "contents": ["/login"],
              "logic": "contain"
            },{
              "category": "ip",
               "logic": "equal",
               "contents": ["X.X.1.1"]
            }
          ],
          "action": {
            "category": "block"
          },
         
         "priority": 10,
         "timestamp": 1499817600
    }

状态码

表8描述的是API返回的正常状态码。
表8 状态码

状态码

编码

状态说明

200

OK

客户端请求已处理成功。

异常状态码,请参见状态码