Reviewed-by: Belejkanic, Lukas <lukas.belejkanic@t-systems.com> Co-authored-by: Li, Qiao <qiaoli@huawei.com> Co-committed-by: Li, Qiao <qiaoli@huawei.com>
33 KiB
Creating a Global Protection Whitelist (Formerly False Alarm Masking) Rule
Function
This API is used to create a global protection whitelist (formerly false alarm masking) rule.
URI
POST /v1/{project_id}/waf/policy/{policy_id}/ignore
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID |
policy_id |
Yes |
String |
Policy ID. It can be obtained by calling the ListPolicy API. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token |
Content-Type |
Yes |
String |
Content type Default: application/json;charset=utf8 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
domain |
Yes |
Array of strings |
Domain names to be protected. If the array length is 0, this rule will take effect for all domain names that are protected by the policies this rule belongs to. |
conditions |
Yes |
Array of CreateCondition objects |
Condition list |
mode |
Yes |
Integer |
The value is fixed at 1, indicating v2 false alarm masking rules. |
rule |
Yes |
String |
Items to be masked. You can provide multiple items and separate them with semicolons (;).
|
advanced |
No |
Array of Advanced objects |
To ignore attacks of a specific field, specify the field in the Advanced settings area. After you add the rule, WAF will stop blocking attacks of the specified field. This parameter is not included if all modules are bypassed. |
description |
No |
String |
Description of the rule |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
category |
No |
String |
Field type. The value can be url, ip, params, cookie, or header. Enumeration values:
|
contents |
No |
Array of strings |
Content. The array length is limited to 1. The content format varies depending on the field type. For example, if the field type is ip, the value must be an IP address or IP address range. If the field type is url, the value must be in the standard URL format. IF the field type is params, cookie, or header, the content format is not limited. |
logic_operation |
No |
String |
The matching logic varies depending on the field type. For example, if the field type is ip, the logic can be equal or not_equal. If the field type is url, params, cookie, or header, the logic can be equal, not_equal, contain, not_contain, prefix, not_prefix, suffix, not_suffix. |
index |
No |
String |
If the field type is ip and the subfield is the client IP address, the index parameter is not required. If the subfield type is X-Forwarded-For, the value is x-forwarded-for; If the field type is params, header, or cookie, and the subfield is user-defined, the value of index is the user-defined subfield. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
index |
No |
String |
Field type. The following field types are supported: Params, Cookie, Header, Body, and Multipart.
|
contents |
No |
Array of strings |
Subfield of the specified field type. The default value is all. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
id |
String |
Rule ID |
policyid |
String |
Policy ID |
timestamp |
Long |
Timestamp the rule was created. |
description |
String |
Rule Description |
status |
Integer |
Rule status. The value can be 0 or 1.
|
rule |
String |
Items to be masked. You can provide multiple items and separate them with semicolons (;).
|
mode |
Integer |
The value is fixed at 1, indicating v2 false alarm masking rules are used. |
conditions |
Array of Condition objects |
Condition list |
advanced |
Array of Advanced objects |
Advanced settings |
domain |
Array of strings |
Domain names to be protected. If the array length is 0, this rule will take effect for all domain names that are protected by the policies this rule belongs to. |
Parameter |
Type |
Description |
---|---|---|
category |
String |
Field type. The value can be ip, url, params, cookie, or header. |
contents |
Array of strings |
Content. The array length must be 1. The content format varies depending on field types. For example, if the field type is ip, the value must be an IP address or IP address range. If the field type is url, the value must be a URL in standard format. If the field type is params, cookie, or header, the content format is not limited. |
logic_operation |
String |
The matching logic varies depending on the field type. For example, if the field type is ip, the logic can be equal or not_equal. If the field type is url, params, cookie, or header, the logic can be equal, not_equal, contain, not_contain, prefix, not_prefix, suffix, not_suffix. |
check_all_indexes_logic |
Integer |
This parameter is reserved and can be ignored. |
index |
String |
If the field type is ip and the subfield is the client IP address, the index parameter does not exist. If the subfield type is X-Forwarded-For, the value is x-forwarded-for. If the field type is params, header, or cookie, and the subfield is user-defined, the value of index is the user-defined subfield. |
Parameter |
Type |
Description |
---|---|---|
index |
String |
Field type. The following field types are supported: Params, Cookie, Header, Body, and Multipart.
|
contents |
Array of strings |
Subfield of the specified field type. The default value is all. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code |
error_msg |
String |
Error message |
Status code: 401
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code |
error_msg |
String |
Error message |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code |
error_msg |
String |
Error message |
Example Requests
POST https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/ignore? { "domain" : [ "www.example.com" ], "mode" : 1, "description" : "", "conditions" : [ { "category" : "ip", "logic_operation" : "equal", "index" : null, "contents" : [ "x.x.x.x" ] } ], "rule" : "091004" }
Example Responses
Status code: 200
Request succeeded.
{ "id" : "40484384970948d79fffe4e4ae1fc54d", "policyid" : "f385eceedf7c4c34a4d1def19eafbe85", "timestamp" : 1650512535222, "description" : "demo", "status" : 1, "rule" : "091004", "mode" : 1, "conditions" : [ { "category" : "ip", "contents" : [ "x.x.x.x" ], "logic_operation" : "equal" } ], "domain" : [ "www.example.com" ] }
Status Codes
Status Code |
Description |
---|---|
200 |
Request succeeded. |
400 |
Request failed. |
401 |
The token does not have required permissions. |
500 |
Internal server error. |
Error Codes
See Error Codes.