更新时间:2026-01-07 GMT+08:00

更新cc防护规则

功能介绍

更新cc防护规则

URI

PUT /v1/{project_id}/waf/policy/{policy_id}/cc/{rule_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,对应控制台用户名->我的凭证->项目列表->项目ID

policy_id

String

策略id(策略id从查询防护策略列表接口获取)

rule_id

String

cc规则的ID。可以通过调用ListCcRules API获取。

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

Content-Type

String

内容类型

表4 请求Body参数

参数

是否必选

参数类型

描述

name

String

规则名称

mode

Integer

cc规则防护模式,对应console上的mode,现在只支持创建高级cc规则防护模式。

  • 0:标准,只支持对域名的防护路径做限制。

  • 1:高级,支持对路径、IP、Cookie、Header、Params字段做限制。

url

String

需要防护的域名路径,当cc防护规则为标准模式(mode参数值为0)时,该参数必填。

conditions

Array of CcCondition objects

cc规则防护规则限速条件,当cc防护规则为高级模式(mode参数值为1)时,该参数必填。

action

action object

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

tag_type

String

限速模式:

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

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

  • header:用户限速,根据Header区分单个Web访问者。

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

  • policy: 策略限速

  • domain: 域名限速

  • url: url限速

tag_index

String

用户标识,当限速模式为用户限速(cookie或header)时,需要传该参数。

  • 选择cookie时,设置cookie字段名,即用户需要根据网站实际情况配置唯一可识别Web访问者的cookie中的某属性变量名。用户标识的cookie,不支持正则,必须完全匹配。例如:如果网站使用cookie中的某个字段name唯一标识用户,那么可以选取name字段来区分Web访问者。

  • 选择header时,设置需要防护的自定义HTTP首部,即用户需要根据网站实际情况配置可识别Web访问者的HTTP首部。

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

规则描述

表5 CcCondition

参数

是否必选

参数类型

描述

category

String

字段类型

logic_operation

String

条件列表匹配逻辑。

  • 如果字段类型category是url, 匹配逻辑可以为:contain、 not_contain、 equal、 not_equal、 prefix、 not_prefix、 suffix、 not_suffix、 contain_any、 not_contain_all、 equal_any、 not_equal_all、 equal_any、 not_equal_all、 prefix_any、 not_prefix_all、 suffix_any、 not_suffix_all、 len_greater、 len_less、len_equal或者len_not_equal

  • 如果字段类型category是ip或者ipv6,匹配逻辑可以为: equal、not_equal、equal_any或者not_equal_all

  • 如果字段类型category是response_code,匹配逻辑可以为: equal或者not_equal

  • 如果字段类型category是params、cookie或者header, 匹配逻辑可以为:contain、 not_contain、 equal、 not_equal、 prefix、 not_prefix、 suffix、 not_suffix、 contain_any、 not_contain_all、 equal_any、not_equal_all、 equal_any、 not_equal_all、 prefix_any、 not_prefix_all、 suffix_any、 not_suffix_all、 len_greater、 len_less、len_equal、len_not_equal、、num_greater、num_less、num_equal、num_not_equal、exist或者not_exist

contents

Array of strings

条件列表逻辑匹配内容。当logic_operation参数不以any或者all结尾时,需要传该参数。

value_list_id

String

引用表id。当logic_operation参数以any或者all结尾时,需要传该参数。此外,引用表类型要与category类型保持一致。

index

String

子字段,当字段类型(category)选择“params”、“cookie”、“header”时,请根据实际需求配置子字段且该参数必填。

表6 action

参数

是否必选

参数类型

描述

category

String

动作类型:

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

  • log: 仅记录

  • dynamic_block: 上一个限速周期内,请求频率超过“限速频率”将被阻断,那么在下一个限速周期内,请求频率超过“放行频率”将被阻断。注:只有当cc防护规则模式为高级模式时才支持设置dynamic_block防护动作。

-block:阻断。

detail

detail object

阻断页面信息。当防护动作(category)选择阻断(block)或者动态阻断(dynamic_block)时,需要设置返回的阻断页面。

  • 如果需要返回的阻断页面为系统默认的阻断页面,不需要传该参数。

  • 如果用户想防护自定义的阻断页面,可以通过此参数设置

表7 detail

参数

是否必选

参数类型

描述

response

response object

返回页面

表8 response

参数

是否必选

参数类型

描述

content_type

String

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

content

String

防护页面内容

表9 tag_condition

参数

是否必选

参数类型

描述

category

String

用户标识字段,其值固定为referer

contents

Array of strings

用户标识字段内容

响应参数

状态码:200

表10 响应Body参数

参数

参数类型

描述

name

String

规则名称

id

String

Rule ID.

policyid

String

Policy ID.

url

String

当mode值为0时,该参数有返回值。规则应用的URL链接,不包含域名。

prefix

Boolean

路径是否为前缀模式,当防护url以*结束,则为前缀模式。

mode

Integer

cc规则防护模式,对应console上的mode,现在只支持创建高级cc规则防护模式。

  • 0:标准,只支持对域名的防护路径做限制。

  • 1:高级,支持对路径、IP、Cookie、Header、Params字段做限制。

conditions

Array of CcCondition objects

cc规则防护规则限速条件,当cc防护规则为高级模式(mode参数值为1)时,该参数必填。

action

action object

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

tag_type

String

限速模式:

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

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

  • header:用户限速,根据Header区分单个Web访问者。

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

  • policy: 策略限速

  • domain: 域名限速

  • url: url限速

tag_index

String

用户标识,当限速模式为用户限速(cookie或header)时,需要传该参数。

  • 选择cookie时,设置cookie字段名,即用户需要根据网站实际情况配置唯一可识别Web访问者的cookie中的某属性变量名。用户标识的cookie,不支持正则,必须完全匹配。例如:如果网站使用cookie中的某个字段name唯一标识用户,那么可以选取name字段来区分Web访问者。

  • 选择header时,设置需要防护的自定义HTTP首部,即用户需要根据网站实际情况配置可识别Web访问者的HTTP首部。

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

规则创建对象,该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数

表11 CcCondition

参数

参数类型

描述

category

String

字段类型

logic_operation

String

条件列表匹配逻辑。

  • 如果字段类型category是url, 匹配逻辑可以为:contain、 not_contain、 equal、 not_equal、 prefix、 not_prefix、 suffix、 not_suffix、 contain_any、 not_contain_all、 equal_any、 not_equal_all、 equal_any、 not_equal_all、 prefix_any、 not_prefix_all、 suffix_any、 not_suffix_all、 len_greater、 len_less、len_equal或者len_not_equal

  • 如果字段类型category是ip或者ipv6,匹配逻辑可以为: equal、not_equal、equal_any或者not_equal_all

  • 如果字段类型category是response_code,匹配逻辑可以为: equal或者not_equal

  • 如果字段类型category是params、cookie或者header, 匹配逻辑可以为:contain、 not_contain、 equal、 not_equal、 prefix、 not_prefix、 suffix、 not_suffix、 contain_any、 not_contain_all、 equal_any、not_equal_all、 equal_any、 not_equal_all、 prefix_any、 not_prefix_all、 suffix_any、 not_suffix_all、 len_greater、 len_less、len_equal、len_not_equal、、num_greater、num_less、num_equal、num_not_equal、exist或者not_exist

contents

Array of strings

条件列表逻辑匹配内容。当logic_operation参数不以any或者all结尾时,需要传该参数。

value_list_id

String

引用表id。当logic_operation参数以any或者all结尾时,需要传该参数。此外,引用表类型要与category类型保持一致。

index

String

子字段,当字段类型(category)选择“params”、“cookie”、“header”时,请根据实际需求配置子字段且该参数必填。

表12 action

参数

参数类型

描述

category

String

动作类型:

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

  • log: 仅记录

  • dynamic_block: 上一个限速周期内,请求频率超过“限速频率”将被阻断,那么在下一个限速周期内,请求频率超过“放行频率”将被阻断。注:只有当cc防护规则模式为高级模式时才支持设置dynamic_block防护动作。

-block:阻断。

detail

detail object

阻断页面信息。当防护动作(category)选择阻断(block)或者动态阻断(dynamic_block)时,需要设置返回的阻断页面。

  • 如果需要返回的阻断页面为系统默认的阻断页面,不需要传该参数。

  • 如果用户想防护自定义的阻断页面,可以通过此参数设置

表13 detail

参数

参数类型

描述

response

response object

阻断页面

表14 response

参数

参数类型

描述

content_type

String

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

content

String

阻断页面内容

表15 tag_condition

参数

参数类型

描述

category

String

用户标识字段,其值固定为referer

contents

Array of strings

用户标识字段内容

状态码:400

表16 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码:401

表17 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码:500

表18 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

修改项目id为project_id,防护策略id为policy_id,规则id为rule_id的cc规则,修改限速模式为ip限速,限速频率为10次,限速周期为60秒,请求次数限制到达后采取的防护动作为人机验证,cc规则防护模式为高级,规则的名称为test55,不开启域名聚合统计,cc规则防护规则限速条件是URL包含“/url”,没有子字段,不开启全局计数。

PUT https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/cc/{rule_id}?

{
  "description" : "",
  "tag_type" : "ip",
  "limit_num" : 10,
  "limit_period" : 60,
  "action" : {
    "category" : "captcha"
  },
  "mode" : 1,
  "name" : "test55",
  "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",
  "description" : "",
  "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.

错误码

请参见错误码