创建cc规则
功能介绍
创建cc规则
URI
POST /v1/{project_id}/waf/policy/{policy_id}/cc
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 项目ID,对应控制台用户名->我的凭证->项目列表->项目ID |
| policy_id | 是 | String | 策略id(策略id从查询防护策略列表接口获取) |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| enterprise_project_id | 否 | String | 您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
| Content-Type | 是 | String | 内容类型 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| name | 否 | String | 规则名称 |
| mode | 是 | Integer | cc规则防护模式,对应console上的mode,现在只支持创建高级cc规则防护模式。
|
| conditions | 是 | Array of CcCondition objects | cc规则防护规则限速条件,当cc防护规则为高级模式(mode参数值为1)时,该参数必填。 |
| action | 是 | action object | 请求次数限制到达后采取的防护动作 |
| tag_type | 是 | String | 限速模式:
|
| tag_index | 否 | String | 用户标识,当限速模式为用户限速(cookie或header)时,需要传该参数。
|
| tag_condition | 否 | tag_condition object | 用户标识,当限速模式为other时,需要传该参数。根据Referer(自定义请求访问的来源)字段区分单个Web访问者 |
| limit_num | 是 | Integer | 限制频率,单位为次,范围为1~2147483647 |
| limit_period | 是 | Integer | 限速周期,单位为秒,范围1~3600 |
| unlock_num | 否 | Integer | 放行频率,单位为次,范围为0~2147483647。只有当防护动作类型为dynamic_block时,才需要传该参数。 |
| lock_time | 否 | Integer | 阻断时间,单位为秒,范围为0~65535。当“防护动作”选择“阻断”时,可设置阻断后恢复正常访问页面的时间。 |
| domain_aggregation | 否 | Boolean | 是否开启域名聚合统计。 |
| region_aggregation | 否 | Boolean | 是否开启全局计数。 |
| description | 否 | String | 规则描述 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| category | 是 | String | 字段类型 |
| logic_operation | 是 | String | 条件列表匹配逻辑。
|
| contents | 否 | Array of strings | 条件列表逻辑匹配内容。当logic_operation参数不以any或者all结尾时,需要传该参数。 |
| value_list_id | 否 | String | 引用表id。当logic_operation参数以any或者all结尾时,需要传该参数。此外,引用表类型要与category类型保持一致。 |
| index | 否 | String | 子字段,当字段类型(category)选择“params”、“cookie”、“header”时,请根据实际需求配置子字段且该参数必填。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| category | 是 | String | 动作类型:
-block:阻断。 |
| detail | 否 | detail object | 阻断页面信息。当防护动作(category)选择阻断(block)或者动态阻断(dynamic_block)时,需要设置返回的阻断页面。
|
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| name | String | 规则名称 |
| id | String | Rule ID. |
| policyid | String | Policy ID. |
| url | String | 当mode值为0时,该参数有返回值。规则应用的URL链接。 |
| prefix | Boolean | 路径是否为前缀模式,当防护url以*结束,则为前缀模式。 |
| mode | Integer | cc规则防护模式,对应console上的mode,现在只支持创建高级cc规则防护模式。
|
| status | Integer | 规则状态,0:关闭,1:开启 |
| conditions | Array of CcCondition objects | cc规则防护规则限速条件,当cc防护规则为高级模式(mode参数值为1)时,该参数必填。 |
| action | action object | 请求次数限制到达后采取的防护动作 |
| tag_type | String | 限速模式:
|
| tag_index | String | 用户标识,当限速模式为用户限速(cookie或header)时,需要传该参数。
|
| tag_condition | tag_condition object | 用户标识,当限速模式为other时,需要传该参数。根据Referer(自定义请求访问的来源)字段区分单个Web访问者 |
| limit_num | Integer | 限制频率,单位为次,范围为1~2147483647 |
| limit_period | Integer | 限速周期,单位为秒,范围1~3600 |
| unlock_num | Integer | 放行频率,单位为次,范围为0~2147483647。只有当防护动作类型为dynamic_block时,才需要传该参数。 |
| lock_time | Integer | 阻断时间,单位为秒,范围为0~65535。当“防护动作”选择“阻断”时,可设置阻断后恢复正常访问页面的时间。 |
| domain_aggregation | Boolean | 是否开启域名聚合统计。 |
| region_aggregation | Boolean | 是否开启全局计数。 |
| description | String | 规则描述 |
| total_num | Integer | 该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 |
| unaggregation | Boolean | 该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 |
| aging_time | Integer | 规则老化时间,该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 |
| producer | Integer | 规则创建对象,该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 |
| timestamp | Long | 创建规则时间戳 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| category | String | 字段类型 |
| logic_operation | String | 条件列表匹配逻辑。
|
| contents | Array of strings | 条件列表逻辑匹配内容。当logic_operation参数不以any或者all结尾时,需要传该参数。 |
| value_list_id | String | 引用表id。当logic_operation参数以any或者all结尾时,需要传该参数。此外,引用表类型要与category类型保持一致。 |
| index | String | 子字段,当字段类型(category)选择“params”、“cookie”、“header”时,请根据实际需求配置子字段且该参数必填。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| category | String | 动作类型:
-block:阻断。 |
| detail | detail object | 阻断页面信息。当防护动作(category)选择阻断(block)或者动态阻断(dynamic_block)时,需要设置返回的阻断页面。
|
| 参数 | 参数类型 | 描述 |
|---|---|---|
| content_type | String | 内容类型,值可为“application/json”、“text/html”、“text/xml”。 |
| content | String | 阻断页面内容 |
状态码:400
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
状态码:401
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
状态码:500
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
请求示例
在项目id为project_id和防护策略id为policy_id的防护策略下创建cc规则,规则的名称test55,限速模式为ip限速,限制频率为10,限速周期为60秒,请求次数限制到达后采取的防护动作为人机验证,cc规则防护模式为高级,cc规则防护规则限速条件的字段类型是URL包含“/url”,没有子字段,不开启全局计数
POST https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/cc?
{
"description" : "",
"name" : "test55",
"tag_type" : "ip",
"limit_num" : 10,
"limit_period" : 60,
"action" : {
"category" : "captcha"
},
"mode" : 1,
"domain_aggregation" : false,
"conditions" : [ {
"category" : "url",
"logic_operation" : "contain",
"contents" : [ "/url" ],
"index" : null
} ],
"region_aggregation" : false
} 响应示例
状态码:200
Request succeeded.
{
"id" : "f88c5eabff9b4ff9ba6e7dd8e38128ba",
"policyid" : "d471eef691684f1c8d7784532fd8f4bd",
"name" : "test55",
"timestamp" : 1678873040603,
"description" : "",
"status" : 1,
"mode" : 1,
"conditions" : [ {
"category" : "url",
"contents" : [ "/url" ],
"logic_operation" : "contain"
} ],
"action" : {
"category" : "captcha"
},
"producer" : 1,
"unaggregation" : false,
"total_num" : 0,
"limit_num" : 10,
"limit_period" : 60,
"lock_time" : 0,
"tag_type" : "ip",
"aging_time" : 0,
"region_aggregation" : false,
"domain_aggregation" : false
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | Request succeeded. |
| 400 | Request failed. |
| 401 | The token does not have required permissions. |
| 500 | Internal server error. |
错误码
请参见错误码。