更新时间:2022-12-29 GMT+08:00

创建CC规则

功能介绍

创建CC规则。

URI

  • URI格式

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

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

    名称

    是否必选

    参数类型

    说明

    project_id

    String

    用户操作的项目ID。

    policy_id

    String

    策略ID。

请求消息

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

名称

是否必选

参数类型

说明

path

String

规则应用的URL链接,不包含域名。

  • 前缀匹配:以*结尾代表以该路径为前缀。

    例如,需要防护的路径为“/admin/test.php”“/adminabc”,则路径可以填写为“/admin*”

  • 完全匹配:需要防护的路径需要与此处填写的路径完全相等。

    如果防护路径为“/admin”,该规则必须填写为“/admin”

limit_num

Integer

单个用户的周期内请求次数(单用户限速)。取值范围为(0次, 232次),默认是1

limit_period

Integer

限速周期。取值范围为(0, 232秒),默认是1

lock_time

Integer

锁定时长。取值范围为[0秒, 232秒)

tag_type

String

防护模式。

  • “ip”:IP限速,根据IP区分单个Web访问者。
  • “cookie”:用户限速,根据Cookie键值区分单个Web访问者。
  • “other”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

tag_index

String

“tag_type”“cookie”时,该参数表示cookie name。

tag_condition

表3

Referer(自定义请求访问的来源)字段,当“tag_type”“other”时,需要传该字段。

action

表4

请求次数限制到达后采取的动作。

表3 tag_condition

名称

是否必选

参数类型

说明

category

String

类别。取值为“Referer”

当传tag_condition字段时,需要传该字段。

contents

List

category的内容。

格式为:http://www.example.com/path。

当传tag_condition字段时,需要传该字段。目前该字段只接受单个值,不要写入多个参数。

表4 action

名称

是否必选

参数类型

说明

category

String

动作类型。

  • “block”:阻断。
  • “captcha”:人机验证,阻断后用户需要输入正确的验证码,恢复正确的访问页面。

默认为“block”

“tag_type”“other”时,只能取值“block”

detail

表5

动作详情,detail为null时表示默认阻断页面。

“category”“captcha”时,不能传此字段。

“category”“block”时,需要传此字段。

表5 detail

名称

是否必选

参数类型

说明

response

表6

返回页面。

表6 response

名称

是否必选

参数类型

说明

content_type

String

返回页面的内容类型。

固定值为“application/json”“text/html”“text/xml”

默认值为“application/json”

content

String

返回页面的内容。

响应消息

响应参数
表7 响应参数说明

名称

参数类型

说明

id

String

CC规则ID。

policy_id

String

策略ID。

path

String

规则应用的URL链接。

limit_num

Integer

单个用户的请求次数。

limit_period

Integer

限速周期。

lock_time

Integer

锁定时间。取值范围为[0秒, 232秒)

tag_type

String

防护模式。

  • “ip”:IP限速,根据IP区分单个Web访问者。
  • “cookie”:用户限速,根据Cookie键值区分单个Web访问者。
  • “other”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

tag_index

String

“tag_type”“cookie”时,该参数表示cookie name。

tag_condition

表8

Referer(自定义请求访问的来源)字段,当“tag_type”“other”时,会返回该字段。

action

表9

请求次数到达限制后采取的动作。

timestamp

Long

创建CC规则的时间。

default

Boolean

是否为默认CC规则。

  • true:表示该规则是默认的CC规则,创建域名时默认创建的CC规则。
  • false:表示该规则不是默认的CC规则,用户自己创建的CC规则。
表8 tag_condition

名称

参数类型

说明

category

String

类别。取值为“Referer”

contents

List

category的内容。

表9 action

名称

参数类型

说明

category

String

动作类型。

  • “block”:阻断。
  • “captcha”:人机验证,阻断后用户需要输入正确的验证码,恢复正确的访问页面。

默认为“block”

“tag_type”“other”时,只能取值block。

detail

表10

动作详情,“detail”“null”时,表示默认阻断页面。

表10 detail

名称

参数类型

说明

response

表11

返回页面。

表11 response

名称

参数类型

说明

content_type

String

返回页面的内容类型。

固定值为“application/json”“text/html”“text/xml”

content

String

返回页面的内容。

示例

如下以创建一条CC规则为例。

  • 请求样例
    {
          "path": "/abc1",
          "limit_num": 10,
          "limit_period": 60,
          "lock_time": 10,
          "tag_type": "cookie",
          "tag_index": "sesssionid",
          "action": {
            "category": "block",
            "detail": {
              "response": {
                  "content_type": "application/json",
                  "content": "{\"error\":\"forbidden\"}"
              }
            }
          }
    }
  • 响应样例
    {
          "id": "3a9b5c0f96784ec8abd8ba61a98064ef",
          "policy_id": "9tre832yf96784ec8abd8ba61a98064ef",
          "path": "/abc1",
          "limit_num": 10,
          "limit_period": 60,
          "lock_time": 10,
          "tag_type": "cookie",
          "tag_index": "sesssionid",
          "action": {
            "category": "block",
            "detail": {
              "response": {
                  "content_type": "application/json",
                  "content": "{\"error\":\"forbidden\"}"
              }
            }
          },
          "timestamp": 1499817600,
          "default": false
    }

状态码

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

状态码

编码

状态说明

200

OK

客户端请求已处理成功。

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