更新时间:2024-07-25 GMT+08:00

创建CC规则

功能介绍

创建CC规则

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

用户操作的项目id

policy_id

String

防护策略id,您可以通过调用查询防护策略列表(ListPolicy)获取策略id

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

auth token

Content-Type

String

内容类型

缺省值:application/json;charset=utf8

表3 请求Body参数

参数

是否必选

参数类型

描述

description

String

规则描述

limit_num

Integer

限制频率次数

最小值:0

最大值:10000

limit_period

Integer

限制频率单位时间

最小值:0

最大值:10000

url

String

url

最小值:0

最大值:10000

mode

Integer

工作模式:(0标准,1高级),高级模式参数无法在同一个接口同一份文档中用描述,参考console页面构建参数

枚举值:

  • 0

  • 1

action

action object

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

tag_type

String

防护模式:

  • “ip”:IP限速,根据IP区分单个Web访问者。

  • “cookie”:用户限速,根据Cookie键值区分单个Web访问者。

  • “other”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

枚举值:

  • ip

  • other

  • cookie

表4 action

参数

是否必选

参数类型

描述

category

String

防护动作

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

total

Integer

该策略下cc规则数量

items

Array of CcrulesListInfo objects

cc规则对象列表

表6 CcrulesListInfo

参数

参数类型

描述

id

String

CC规则ID

policyid

String

CC防护策略的策略ID

url

String

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

  • 前缀匹配:以结尾代表以该路径为前缀。例如,需要防护的路径为“/admin/test.php”或 “/adminabc”,则路径可以填写为“/admin”。

  • 完全匹配:需要防护的路径需要与此处填写的路径完全相等。如果防护路径为“/admin”,该规则必须填写为“/admin”。

limit_num

String

单个用户的周期内请求次数(单用户限速)

limit_period

String

限速周期。

lock_time

String

锁定时长。取值范围为[0秒, 2^32秒)

tag_type

String

防护模式:

  • “ip”:IP限速,根据IP区分单个Web访问者。

  • “cookie”:用户限速,根据Cookie键值区分单个Web访问者。

  • “other”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

tag_index

String

防护模式标签,当“tag_type”为cookie时,该参数表示cookie name。

action

action object

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

timestamp

Long

创建规则时间戳

表7 action

参数

参数类型

描述

category

String

动作类型:

  • “block”:阻断

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

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

detail

String

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

  • 当“category”为“captcha”时,不能传此字段;

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

表8 detail

参数

参数类型

描述

redirect_url

String

返回页面重定向的url

response

response object

返回页面

表9 response

参数

参数类型

描述

content_type

String

内容类型,固定值为“application/json”、“text/html”、“text/xml”。

content

String

内容

状态码: 400

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

POST https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/cc?enterprise_project_id=0

{
  "action" : {
    "category" : "captcha"
  },
  "description" : "",
  "limit_num" : 10,
  "limit_period" : 60,
  "mode" : 0,
  "tag_type" : "ip",
  "url" : "/path"
}

响应示例

状态码: 200

ok

{
  "aging_time" : 0,
  "description" : "",
  "id" : "a5f3fd28db564696b199228f0ac346b2",
  "limit_num" : 10,
  "limit_period" : 60,
  "lock_time" : 0,
  "mode" : 0,
  "policyid" : "1f016cde588646aca3fb19f277c44d03",
  "prefix" : false,
  "producer" : 1,
  "status" : 1,
  "tag_type" : "ip",
  "timestamp" : 1656494435686,
  "total_num" : 0,
  "unaggregation" : false,
  "url" : "/path"
}

状态码

状态码

描述

200

ok

400

请求失败

401

token权限不足

500

服务器内部错误

错误码

请参见错误码