创建精准防护规则
功能介绍
创建精准防护规则
URI
POST /v1/{project_id}/waf/policy/{policy_id}/custom
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
用户操作的项目id |
policy_id |
是 |
String |
防护策略id,您可以通过调用查询防护策略列表(ListPolicy)获取策略id |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
auth token |
Content-Type |
是 |
String |
内容类型 缺省值:application/json;charset=utf8 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
自定义规则的名称 |
time |
否 |
Boolean |
精准防护规则生效时间:
|
start |
否 |
Long |
精准防护规则生效的起始时间戳(毫秒)。当time=true,才会返回该参数。 |
terminal |
否 |
Long |
精准防护规则生效的终止时间戳(毫秒)。当time=true,才会返回该参数。 |
conditions |
否 |
Array of CustomConditions objects |
匹配条件列表 |
action |
否 |
CustomAction object |
精准防护规则命中后操作对象 |
priority |
否 |
Integer |
执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到1000。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
category |
否 |
String |
条件类型 固定值path、user-agent、ip、params、cookie、referer、header |
index |
否 |
String |
当“category”为“cookie”时,index表示cookie。
|
check_all_indexes_logic |
否 |
Integer |
取值范围:1,2;1 表示全部子字段,2 表示任意子字段 |
logic_operation |
否 |
Integer |
“contain”,“not_contain”,“equal”,“not_equal”,“prefix”,“not_prefix”,“suffix”,“not_suffix”分别代表包含、不包含、等于、不等于、前缀为、前缀不为、后缀为、后缀不为。当条件类型“category”为ip时,“logic_operation”只能为“equal”或者“not_equal” |
contents |
否 |
Array of strings |
条件匹配的内容 |
value_list_id |
否 |
String |
引用表的id |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
精准防护规则的id |
policyid |
String |
精准防护规则的策略id |
conditions |
Array of conditions objects |
匹配条件列表,匹配条件必须同时满足。 |
action |
action object |
精准防护规则命中后操作对象 |
priority |
Integer |
执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到1000。 |
timestamp |
Long |
创建精准防护规则的时间戳 |
start |
Long |
精准防护规则生效的起始时间戳(毫秒)。当time=true,才会返回该参数。 |
terminal |
Long |
精准防护规则生效的终止时间戳(毫秒)。当time=true,才会返回该参数。 |
参数 |
参数类型 |
描述 |
---|---|---|
category |
String |
条件类型。固定值path、user-agent、ip、params、cookie、referer、header。 |
index |
String |
当“category”为“cookie”时,index表示cookie。
|
check_all_indexes_logic |
Integer |
取值范围:1,2;1 表示全部子字段,2 表示任意子字段 |
logic_operation |
Integer |
“contain”,“not_contain”,“equal”,“not_equal”,“prefix”,“not_prefix”,“suffix”,“not_suffix”分别代表包含、不包含、等于、不等于、前缀为、前缀不为、后缀为、后缀不为。当条件类型“category”为ip时,“logic_operation”只能为“equal”或者“not_equal” |
contents |
Array of strings |
条件匹配的内容 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误信息 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误信息 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误信息 |
请求示例
POST https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/custom?enterprise_project_id=0 { "description" : "", "action" : { "category" : "block" }, "priority" : 50, "conditions" : [ { "category" : "header", "logic_operation" : "exist", "index" : "sdfsafsda" } ], "time" : false }
响应示例
状态码: 200
ok
{ "items" : [ { "action" : { "category" : "block" }, "action_mode" : false, "aging_time" : 0, "conditions" : [ { "category" : "header", "index" : "sdfsafsda", "logic_operation" : "exist" } ], "description" : "", "id" : "2a3caa2bc9814c09ad73d02e3485b4a4", "policyid" : "1f016cde588646aca3fb19f277c44d03", "priority" : 50, "producer" : 1, "status" : 1, "time" : false, "timestamp" : 1656495488880 } ] }
状态码
状态码 |
描述 |
---|---|
200 |
ok |
400 |
请求失败 |
401 |
token权限不足 |
500 |
服务器内部错误 |
错误码
请参见错误码。