文档首页/ Web应用防火墙 WAF/ API参考/ API/ 策略规则管理/ 选中多个策略批量添加精准防护规则 - BatchCreateCustomRule
更新时间:2025-11-21 GMT+08:00
分享

选中多个策略批量添加精准防护规则 - BatchCreateCustomRule

功能介绍

选中多个策略为这些策略批量添加精准防护规则

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/waf/rule/custom

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

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

约束限制:

不涉及

取值范围:

只能由英文字母、数字组成,且长度为32个字符。

默认取值:

不涉及

表2 Query参数

参数

是否必选

参数类型

描述

policyids

String

参数解释:

策略id列表。策略id从"查询防护策略列表"(ListPolicy)接口获取,多个策略之间用“,”隔开

约束限制:

不涉及

取值范围:

策略id只能由英文字母、数字组成,且长度为32个字符。

默认取值:

不涉及

enterprise_project_id

String

参数解释:

您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目ID。若需要查询当前用户所有企业项目绑定的资源信息,请传参all_granted_eps。

约束限制:

不涉及

取值范围:

  • 0:代表default企业项目

  • all_granted_eps:代表所有企业项目

  • 其它企业项目ID:长度为36个字符

默认取值:

0

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

Content-Type

String

参数解释:

内容类型

约束限制:

不涉及

取值范围:

不涉及

默认取值:

application/json;charset=utf8

表4 请求Body参数

参数

是否必选

参数类型

描述

time

Boolean

精准防护规则生效时间:

  • “false”:表示该规则立即生效。

  • “true”:表示自定义生效时间。

start

Long

精准防护规则生效的起始时间戳(秒)。当time=true,才需要填写该参数。

terminal

Long

精准防护规则生效的终止时间戳(秒)。当time=true,才需要填写该参数。

description

String

规则描述

conditions

Array of CustomConditions objects

匹配条件列表

action

CustomAction object

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

priority

Integer

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

name

String

规则名称

policy_ids

Array of strings

添加规则的策略id列表。策略id从"查询防护策略列表"(ListPolicy)接口获取,多个策略之间用“,”隔开

表5 CustomConditions

参数

是否必选

参数类型

描述

category

String

字段类型。可选值为:url、user-agent、ip、params、cookie、referer、header、request_line、method、request

index

String

子字段:

  • 字段类型为url、user-agent、ip、refer、request_line、method、request时,不需要传index参数

  • 字段类型为params、header、cookie并且子字段为自定义时,index的值为自定义子字段

logic_operation

String

条件列表匹配逻辑。

  • 如果字段类型category是url、user-agent或者referer, 匹配逻辑可以为: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, 匹配逻辑可以为: equal、not_equal、equal_any或者not_equal_all

  • 如果字段类型category是method, 匹配逻辑可以为: equal或者not_equal n - 如果字段类型category是request_line或者request, 匹配逻辑可以为: len_greater、len_less、len_equal或者len_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类型保持一致。

表6 CustomAction

参数

是否必选

参数类型

描述

category

String

操作类型。

  • “block”:拦截。

  • “pass”:放行。

  • “log”:仅记录

followed_action_id

String

攻击惩罚规则id,只有当category参数值为block时才可配置该参数

响应参数

状态码:200

表7 响应Body参数

参数

参数类型

描述

id

String

规则id

name

String

规则名称

policyid

String

策略id

description

String

规则描述

status

Integer

规则状态,0:关闭,1:开启

conditions

Array of conditions objects

匹配条件列表,匹配条件必须同时满足。

action

CustomAction object

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

action_mode

Boolean

预留参数,可忽略。

priority

Integer

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

timestamp

Long

创建精准防护规则的

time

Boolean

精准防护规则生效时间:

  • “false”:表示该规则立即生效。

  • “true”:表示自定义生效时间。

start

Long

精准防护规则生效的起始时间戳(秒)。当time=true,才会返回该参数。

terminal

Long

精准防护规则生效的终止时间戳(秒)。当time=true,才会返回该参数。

producer

Integer

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

表8 conditions

参数

参数类型

描述

category

String

字段类型。可选值为:url、user-agent、ip、params、cookie、referer、header、request_line、method、reqeust

index

String

子字段:

  • 字段类型为url、user-agent、ip、refer、request_line、method、reqeust时,不需要传index参数

  • 字段类型为params、header、cookie并且子字段为自定义时,index的值为自定义子字段

logic_operation

String

条件匹配逻辑。

contents

Array of strings

条件匹配的内容

value_list_id

String

引用表id。

表9 CustomAction

参数

参数类型

描述

category

String

操作类型。

  • “block”:拦截。

  • “pass”:放行。

  • “log”:仅记录

followed_action_id

String

攻击惩罚规则id,只有当category参数值为block时才可配置该参数

状态码:400

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

encoded_authorization_message

String

编码 (加密) 后的详细拒绝原因,用户可以自行调用 STS 服务的decode-authorization-message接口进行解码,可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。

details

Array of IAM5ErrorDetails objects

调用下游服务的报错信息集合,IAM5鉴权错误时才会返回此字段。

表11 IAM5ErrorDetails

参数

参数类型

描述

error_code

String

下游服务错误码

error_msg

String

下游服务报错信息

状态码:401

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

encoded_authorization_message

String

编码 (加密) 后的详细拒绝原因,用户可以自行调用 STS 服务的decode-authorization-message接口进行解码,可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。

details

Array of IAM5ErrorDetails objects

调用下游服务的报错信息集合,IAM5鉴权错误时才会返回此字段。

表13 IAM5ErrorDetails

参数

参数类型

描述

error_code

String

下游服务错误码

error_msg

String

下游服务报错信息

状态码:500

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

encoded_authorization_message

String

编码 (加密) 后的详细拒绝原因,用户可以自行调用 STS 服务的decode-authorization-message接口进行解码,可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。

details

Array of IAM5ErrorDetails objects

调用下游服务的报错信息集合,IAM5鉴权错误时才会返回此字段。

表15 IAM5ErrorDetails

参数

参数类型

描述

error_code

String

下游服务错误码

error_msg

String

下游服务报错信息

请求示例

选中多个策略为这些策略批量添加精准防护规则

POST https://{endpoint}/v1/{project_id}/waf/rule/custom?enterprise_project_id=0

{
  "action" : {
    "category" : "block"
  },
  "priority" : 50,
  "description" : "",
  "time" : false,
  "name" : "test2",
  "conditions" : [ {
    "category" : "header",
    "logic_operation" : "contain",
    "index" : "demo",
    "contents" : [ "demo" ]
  } ],
  "policy_ids" : [ "policy_id" ]
}

响应示例

状态码:200

参数解释:

OK

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

{
  "action" : {
    "category" : "block"
  },
  "priority" : 50,
  "description" : "",
  "time" : false,
  "name" : "test2",
  "conditions" : [ {
    "category" : "header",
    "logic_operation" : "contain",
    "index" : "demo",
    "contents" : [ "demo" ]
  } ]
}

状态码

状态码

描述

200

参数解释:

OK

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

400

参数解释:

请求失败

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

401

参数解释:

token权限不足

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

500

参数解释:

服务器内部错误

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

错误码

请参见错误码

相关文档