doc-exports/docs/wafd/api-ref/CreateCcRule.html
Li, Qiao 901ea67b42 waf dedicated API 01
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: Li, Qiao <qiaoli@huawei.com>
Co-committed-by: Li, Qiao <qiaoli@huawei.com>
2022-12-08 14:03:35 +00:00

34 KiB

Creating a CC Attack Protection Rule

Function

This API is used to create a CC attack protection rule.

URI

POST /v1/{project_id}/waf/policy/{policy_id}/cc

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID

policy_id

Yes

String

Policy ID. It can be obtained by calling the API Querying Protection Policies.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

auth token

Content-Type

Yes

String

Content type.

Default: application/json;charset=utf8

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

description

No

String

Rule description

limit_num

No

Integer

Frequency limits

Minimum: 0

Maximum: 10000

limit_period

No

Integer

Frequency limit unit

Minimum: 0

Maximum: 10000

url

No

String

url

Minimum: 0

Maximum: 10000

mode

No

Integer

Work mode. The value can be 0 (standard) or 1 (advanced). The parameters of the advanced mode cannot be described in the same document of the same API. For details, see this parameter on the console page.

Enumeration values:

  • 0

  • 1

action

No

action object

Action to take if the number of requests reaches the upper limit.

tag_type

No

String

Protection mode.

  • ip: IP-based rate limiting. Website visitors are identified by IP address.

  • cookie: User-based rate limiting. Website visitors are identified by the cookie key value.

  • other: Website visitors are identified by the Referer field (user-defined request source).

Enumeration values:

  • ip

  • other

  • cookie

Table 4 action

Parameter

Mandatory

Type

Description

category

No

String

Action type:

  • block: WAF blocks discovered attacks.

  • captcha: Verification code. WAF requires visitors to enter a correct verification code to continue their access to requested page on your website.

  • If tag_type is set to other, the value can only be block.

detail

No

String

Action details. If detail is null, the default block page is displayed by default.

  • This parameter cannot be included when category is set to captcha.

  • This parameter is required when category is set to block.

Table 5 detail

Parameter

Mandatory

Type

Description

response

No

response object

Returned page.

Table 6 response

Parameter

Mandatory

Type

Description

content_type

No

String

Content type. The value can only be application/json, text/html, or text/xml.

content

No

String

Protection page content.

Response Parameters

Status code: 200

Table 7 Response body parameters

Parameter

Type

Description

id

String

Rule ID.

policyid

String

Policy ID.

url

String

When the value of mode is 0, this parameter has a return value. URL to which the rule applies, excluding a domain name.

  • Prefix match: A path ending with * indicates that the path is used as a prefix. For example, to protect /admin/test.php or /adminabc, you can set Path to /admin*.

  • Exact match: The path you enter must exactly match the path you want to protect. If the path you want to protect is /admin, set url to /admin.

prefix

Boolean

Whether a prefix is used for the path. If the protected URL ends with an asterisk (*), a path prefix is used.

mode

Integer

Mode.

  • 0: Standard.

  • 1: Advanced

status

Integer

Rule status. The value can be 0 or 1.

  • 0: The rule is disabled.

  • 1: The rule is enabled.

limit_num

String

Number of requests allowed from a web visitor in a rate limiting period

limit_period

String

Rate limiting period

lock_time

String

How long a web visitor will be locked The value range is [0 to 2^32), in seconds.

tag_type

String

Protection mode.

  • ip: IP-based rate limiting. Website visitors are identified by IP address.

  • cookie: User-based rate limiting. Website visitors are identified by the cookie key value.

  • other: A website visitor is identified by the Referer field (user-defined request source).

description

String

Rule description

action

action object

Action to take if the number of requests reaches the upper limit.

conditions

Array of conditions objects

Condition list. This parameter is returned when mode is set to 1.

timestamp

Long

Timestamp the rule is created.

Table 8 action

Parameter

Type

Description

category

String

Action type:

  • block: WAF blocks discovered attacks.

  • captcha: Verification code. WAF requires visitors to enter a correct verification code to continue their access to requested page on your website.

  • If tag_type is set to other, the value can only be block.

detail

String

Action details. If detail is null, the default block page is displayed by default.

  • This parameter cannot be included when category is set to captcha.

  • This parameter is required when category is set to block.

Table 9 detail

Parameter

Type

Description

response

response object

Returned page

Table 10 response

Parameter

Type

Description

content_type

String

Content type. The value can only be application/json, text/html, or text/xml.

content

String

Contents

Table 11 conditions

Parameter

Type

Description

category

String

Field type. The options are as follows: ip, cookie, and url

index

String

Parameter description:

  • When the field type is ip or url, the index parameter is not required.

  • When the field type is cookie and the subfield is customized, the value of index is the customized subfield.

logic_operation

String

Condition matching logic. The options are contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, not_suffix, equal_any, and not_equal_any, contain_any, and not_contain_any.

  • When the field type is url, the following matching logics are supported: contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, and not_suffix.

  • When the field type is ip, the following matching logics are supported: equal, not_equal, equal_any, and not_equal_any.

  • When category is set to cookie, the following matching logics are supported: contain, not_contain, equal, not_equal. prefix, not_prefix, suffix, not_suffix, contain_any, and not_contain_any.

contents

Array of strings

Content of the conditions.

Status code: 400

Table 12 Response body parameters

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error message

Status code: 401

Table 13 Response body parameters

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error message

Status code: 500

Table 14 Response body parameters

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}/cc?

{
  "action" : {
    "category" : "captcha"
  },
  "description" : "",
  "limit_num" : 10,
  "limit_period" : 60,
  "mode" : 0,
  "tag_type" : "ip",
  "url" : "/path"
}

Example Responses

Status code: 200

Request succeeded.

{
  "aging_time" : 0,
  "description" : "",
  "id" : "a5f3fd28db564696b199228f0ac346b2",
  "limit_num" : 10,
  "limit_period" : 60,
  "lock_time" : 0,
  "mode" : 0,
  "policyid" : "1f016cde588646aca3fb19f277c44d03",
  "prefix" : false,
  "status" : 1,
  "tag_type" : "ip",
  "timestamp" : 1656494435686,
  "total_num" : 0,
  "unaggregation" : false,
  "url" : "/path"
}

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.