You need to enable JavaScript to run this app.
导航

CreateCustomPage-创建自定义响应拦截规则

最近更新时间2024.03.01 16:47:39

首次发布时间2024.02.01 14:25:20

创建自定义响应拦截规则,当满足条件的请求被 WAF 拦截时返回特定信息(CC 拦截除外),如自定义的响应码和响应页面。

请求说明

  • 请求方式:POST
  • 请求地址:https://open.volcengineapi.com/?Action=CreateCustomPage&Version=2023-12-25

请求参数

参数

类型

是否必填

示例值

描述

Host

String

example.volcwaf001.com

需要添加防护规则的域名。

ClientIp

String

ALL

生效 IP 范围,需填写 ALL,即对所有 IP 生效。

ContentType

String

1

页面类型。

  • text/html
  • text/xml
  • application/json

Code

Integer

403

自定义 HTTP 返回码。

PageMode

Integer

0

响应页面模板。

  • 0:系统默认
  • 1:自定义
  • 2:重定向

Body

String

<!DOCTYPE html> <html> <meta charset="utf-8"> <body> <p> 您的权限不足,暂时无法访问该页面。</p> </body> </html>

页面内容。

  • PageMode=0时,需要传入的内容为固定模板。
    • text/html:<!DOCTYPE html> <html> <meta charset="utf-8"> <body> <p> !!! 系统禁止访问 </p> </body> </html>
    • text/xml:<?xml version="1.0" encoding="UTF-8"?><body> !!! 系统禁止访问 </body>
    • application/json:{"Content":"!!! 系统禁止访问"}
  • PageMode=1时,支持自定义内容。

Name

String

testwaf

规则名称,支持英文、汉字、数字, 不支持特殊字符,长度限制在 20 个字符内。

Url

String

/test

匹配路径。支持通配符**只能出现一次。

  • 某个具体的 URL 地址,例如需要放行test.com/test.html,则填写 /test.html
  • 针对整个网站,则填写/即可。
  • 某个路径前缀适配的所有地址,例如/test/*

RedirectUrl

String

/test1

重定向匹配路径,PageMode=2时需要填写。

Action

String

observe

执行动作。

  • observe:观察
  • block:拦截

Enable

Integer

1

规则开关。默认为开启。

  • 0:关闭
  • 1:开启

Advanced

Integer

1

是否配置高级条件。

  • 0:否
  • 1:是

Accurate

Accurate object

-

Advanced=1时需要填写。

Description

String

增加一条自定义响应拦截规则。

规则备注。

Accurate

参数

类型

是否必填

示例值

描述

AccurateRules

Array of AccurateRules objects

-

规则详情。

Logic

Integer

1

高级条件的逻辑关系。

  • 1:与
  • 2:或

AccurateRules

参数

类型

是否必填

示例值

描述

HttpObj

String

request.method

自定义对象,与ObjType存在映射关系。

  • 请求协议:request.schema
  • 请求 uri:request.uri
  • 请求方法:request.method
  • 请求路径:request.path
  • 请求参数:request.queryargs
  • 请求头:request.header
  • 请求 User-Agent:request.header.ua
  • 请求 refer:request.header.refer
  • 请求 Cookies:request.header.cookies
  • 请求体长度:request.header.content-length
  • 请求体格式:request.header.content-type
  • X-forwarded-for:request.header.x-forwarded-for
  • 客户端 IP:request.header.clientip
  • 自定义 Args:request.queryargs.自定义参数名称。例如request.queryargs.abc
  • 自定义 header:request.header.自定义Header 名称。例如request.header.abc
  • 自定义 cookie:request.cookie.自定义 cookie 名称。例如request.cookie.abc

ObjType

Integer

0

匹配字段。

  • 0:请求协议
  • 1:请求 uri
  • 2:请求方法
  • 3:请求路径
  • 4:请求参数
  • 5:请求头
  • 6:请求 User-Agent
  • 7:请求 refer
  • 8:请求 Cookies
  • 9:请求体长度
  • 10:请求体格式
  • 11:X-forwarded-for
  • 12:客户端 IP
  • 13:自定义 Args
  • 14:自定义 header
  • 15:自定义 cookie

Opretar

Integer

0

逻辑运算符。

  • 0:大于
  • 1:大于等于
  • 2:等于
  • 3:小于
  • 4:小于等于
  • 5:不等于
  • 6:包含子串
  • 7:不包含子串
  • 8:包含前缀
  • 9:不包含前缀
  • 10:包含后缀
  • 11:不包含后缀
  • 12:包含所有匹配集合
  • 13:不包含所有匹配集合
  • 14:属于匹配集合
  • 15:不属于匹配集合
  • 16:正则
  • 17:判断为 IP
  • 18:判断为 IPv4
  • 19:判断为 IPv6
  • 20:判断为私网 IP
  • 21:判断为公网 IP

Property

Integer

0

固定取值为 0,取HttpObj的值用于匹配对应详情。

ValueString

String

123

匹配内容。
逻辑关系判断为 IP、 IPv4、 IPv6、私网 IP 或公网 IP 时不需要填写。

返回参数

参数

类型

示例值

描述

Id

Integer

8888

创建的规则 ID。

请求示例

POST https://open.volcengineapi.com/?Action=CreateCustomPage&Version=2023-12-25
X-Date: 20230711T035055Z
Authorization: HMAC-SHA256 Credential=AKLTNGU0OGEyMT***/20230711/cn-beijing/waf/request, SignedHeaders=content-type;x-content-sha256;x-date, Signature=da4fac562d00f41ad8***

{
  "Host": "test.volcwaf001.com",
  "ClientIp": "ALL",
  "Name": "test1",
  "Url": "/.html",
  "Enable": 1,
  "Code": 400,
  "PageMode": 0,
  "ContentType": "text/html",
  "Body": "<!DOCTYPE html> <html> <meta charset=\"utf-8\"> <body> <p> !!! 系统禁止访问 </p> </body> </html>",
  "Advanced": 1,
  "Accurate": {
    "Logic": 1,
    "AccurateRules": [
      {
        "Property": 0,
        "HttpObj": "request.schema",
        "ObjType": 0,
        "Opretar": 2,
        "ValueString": "http"
      },
      {
        "Property": 0,
        "HttpObj": "request.method",
        "ObjType": 2,
        "Opretar": 5,
        "ValueString": "post"
      }
    ]
  }
}

返回示例

{
    "ResponseMetadata": {
        "RequestId": "20210816110638947C2514606306AF****",
        "Action": "CreateCustomPage",
        "Version": "2023-12-25",
        "Service": "waf",
        "Region": "cn-beijing"
    }, 
    "Result": {
        "Id": 8888
    }
}