BatchCreateDcdnWafRules - 配置防护规则

调用BatchCreateDcdnWafRules设置WAF防护规则。

接口说明

说明

单用户调用频率:20 次/秒。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

dcdn:BatchCreateDcdnWafRules

create

*全部资源

*

请求参数

名称

类型

必填

描述

示例值

PolicyId

integer

防护策略 ID。

1000001

RuleConfigs

string

防护规则配置。

[{"name":"example","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"example_subkey","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"example_subkey","status":{"code":"502","count":5}},"ccStatus":"on","effect":"rule","status":"on"}]

RuleConfigs 取值说明

  • RuleConfigs 为列表切片,其中每个结构体代表一条规则。

  • 根据 PolicyId 对应的防护策略类型不同,RuleConfigs 的格式也不同。

防护场景 1:Web 正则防护(waf_group)

参数

类型

必要

示例值

描述

status

String

on

防护规则开关,取值:on(开启),off(关闭)。默认为 on。

action

String

block

规则动作,取值:block(拦截),monitor(观察)。

wafGroupIds

String

1012

WAF 规则组 ID,默认为"1012",多个 ID 使用半角逗号(,)分隔。

waf_group 配置示例:

// Web 正则防护目前仅支持一条策略下配置一条规则。
[
  {
    "status": "on",
    "action": "block"
  }
]

防护场景 2:自定义规则(custom_acl)

名称

类型

是否必选

示例值

描述

name

string

acl_1

防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。

status

string

on

取值:on(开启),off(关闭)。默认为 on。

conditions

Condition

[ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }]

触发规则条件,具体参数请参考表 1 Condition 参数说明

ccStatus

string

off

频次控制开关,on(开启),off(关闭)。

rateLimit

RateLimit

{ "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800}

具体的频次控制规则,当 ccStatus 为 on 时必填。具体参数请参考表 2 RateLimit 参数说明

effect

string

service

频次控制黑名单的生效范围,当 ccStatus 为 on 时必填,取值:rule(当前规则生效),service(全局生效)。

action

string

deny

规则动作,取值:deny(拦截)、js(JS 验证)、monitor(观察)。

表 1 Condition 参数说明

名称

类型

是否必选

示例值

描述

Key

string

Query String Parameter

匹配字段,具体请参考 DescribeDcdnWafFilterInfo

subKey

string

action

匹配子字段,具体请参考 DescribeDcdnWafFilterInfo

opValue

String

eq

逻辑符,具体请参考 DescribeDcdnWafFilterInfo

values

String

js

匹配内容,多值使用英文逗号(,)分隔,具体值参考 DescribeDcdnWafFilterInfo

表 2 RateLimit 参数说明

名称

类型

是否必选

示例值

描述

target

string

Header

频次控制的统计字段,取值:IP:表示统计同一个 IP 发起请求的频率。Header:表示统计包含指定 Header 的请求的频率。Query String Parameter:表示统计包含指定参数的请求的频率。Cookie Name:表示统计包含指定 Cookie 的请求的频率。Session:表示统计来自同一个会话发起请求的频率。

subKey

string

User-Agent

统一字段的子字段,当 target 为 Header、Query String Parameter 或 Cookie Name 时必填。

Interval

Integer

5

统计时长。取值范围:5~1800。单位:秒。

threshold

Integer

2

统计阈值。取值范围:2~500000。单位:次。

ttl

Integer

1800

黑名单超时时间。取值范围:60~86400。单位:秒。

status

RateLimitStatus

{"code": "404", "ratio": 10}

响应码统计。具体参数请参考表 3 RateLimitStatus 参数说明

表 3 RateLimitStatus 参数说明

名称

类型

是否必选

示例值

描述

codet

string

404

HTTP 状态码。

ratio

Integer

10

按比例(%)统计。取值:1~100,与 count 字段二选一。

count

Integer

10

按数量统计。取值:2~50000,与 ratio 字段二选一。

custom_acl 配置示例:

[
  // 访问控制
  {
    "name": "acl_1",
    "status": "off",
    "conditions":
    [
      {
        "key": "Query String Parameter",
        "subKey": "action",
        "opValue": "eq",
        "values": "js"
      }
    ],
    "ccStatus": "off",
    "action": "js"
  },
  // 频次控制
  {
    "name": "cc_1",
    "status": "on",
  	"conditions": 
    [
      {
        "key": "URI",
        "subKey": "",
        "opValue": "contain",
        "values": "/login.php"
      },
      {
        "key": "IP",
        "subKey": "",
        "opValue": "ip-contain",
        "values": "192.168.0.1/24"
      }
    ],
    "ccStatus": "on",
    "ratelimit":
    {
      "target": "Header",
      "subKey": "User-Agent",
      "interval": 5,
      "threshold": 2,
      "ttl": 1800,
      "status":
      {
        "code": "404",
        "ratio": 10
      }
    },
    "effect": "service",
    "action": "deny"
  }
]

防护场景 3:白名单(whitelist)

名称

类型

是否必选

示例值

描述

name

string

on

防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。

status

string

on

防护规则开关,取值:on(默认):开启。off:关闭。

conditions

Condition

[{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }]

触发规则的条件。具体参数请参考表 1 Condition 参数说明

tags

String

[ "waf_group", "custom_acl"]

防护策略类型列表。

regularTypes

String

[ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"]

正则规则类型,当 tags 中出现 waf_group 时,此值可填,可选值:["sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", "other"]。

regularRules

String

[ "100001", "100002", "100003"]

正则规则,当 tags 中出现 waf_group 时,此值可填,且与 regularTypes 只能出现一个,值为字符串格式的六位数字组成的列表。

whitelist 配置示例:

[
  // 跳过全部场景
  {
    "name": "wl_all",
    "status": "on",
    "conditions":
    [
      {
        "key": "Http-Method",
        "subKey": "",
        "opValue": "match-one",
        "values": "GET,POST,DELETE"
      }
    ],
    "tags":
    [
      "waf_group",
      "custom_acl",
      "ip_blacklist",
      "region_block"
    ]
  },
  // 跳过 waf_group 的指定规则 id
  {
    "name": "wl_waf_id",
    "status": "off",
    "conditions":
    [
      {
        "key": "Cookie Name",
        "subKey": "cdn-sec",
        "opValue": "prefix-match",
        "values": "a7sdsa9dsa8d8sa"
      },
      {
        "key": "Referer",
        "subKey": "",
        "opValue": "none",
        "values": ""
      }
    ],
    "tags":
    [
      "waf_group"
    ],
    "regularRules":
    [
      "100001",
      "100002",
      "100003"
    ]
  },
  {
  // 跳过 waf_group 的指定规则类型
    "name": "wl_waf_type",
    "status": "on",
    "conditions":
    [
      {
        "key": "Query String",
        "subKey": "",
        "opValue": "exists",
        "values": ""
      }
    ],
    "tags":
    [
      "waf_group"
    ],
    "regularTypes":
    [
      "sqli",
      "xss",
      "code_exec",
      "crlf",
      "lfilei",
      "rfilei",
      "webshell",
      "vvip",
      "other"
    ]
  },
  // 跳过自定义规则
  {
    "name": "wl_custom_acl",
    "status": "on",
    "conditions":
    [
      {
        "key": "Http-Method",
        "subKey": "",
        "opValue": "match-one",
        "values": "GET,POST,DELETE"
      }
    ],
    "tags":
    [
      "custom_acl"
    ]
  },
  // 跳过 IP 黑名单
  {
    "name": "wl_ip_blacklist",
    "status": "on",
    "conditions":
    [
      {
        "key": "Http-Method",
        "subKey": "",
        "opValue": "match-one",
        "values": "GET,POST,DELETE"
      }
    ],
    "tags":
    [
      "ip_blacklist"
    ]
  },
  // 跳过区域封禁
  {
    "name": "wl_region_block",
    "status": "on",
    "conditions":
    [
      {
        "key": "Http-Method",
        "subKey": "",
        "opValue": "match-one",
        "values": "GET,POST,DELETE"
      }
    ],
    "tags":
    [
      "region_block"
    ]
  }
]

防护场景 4:IP 黑名单(ip_blacklist)

名称

类型

是否必选

示例值

描述

name

string

ipblacklist

防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。

status

string

on

防护规则开关,取值:取值:on(开启),off(关闭)。默认为 on。

remoteAddr

[]String

["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"]

按 IP 地址过滤,具体请参见 DescribeDcdnWafFilterInfo

action

string

deny

规则动作,取值:deny(拦截),monitor(观察)。

ipblacklist 配置示例:

[
    {
    "name": "ipblacklist",
    "status": "on",
    "remoteAddr": ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"],
    "action": "deny"
  }
]

防护场景 5:区域封禁(region_block)

名称

类型

是否必选

示例值

描述

status

string

on

防护规则开关,取值:on(开启),off(关闭)。默认为 on。

cnRegionList

string

110000,TW,MO

中国境内封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo

otherRegionList

string

JP,GB

中国境外封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo

action

string

deny

规则动作,取值:deny(拦截),monitor(观察)。

说明

cnRegionList 和 otherRegionList 至少填写其中一个。

region_block 配置示例:

[
    {
    "status": "on",
    "cnRegionList": "110000,TW,MO",
    "otherRegionList": "JP,GB",
    "action": "deny"
  }
]

防护场景 6:Bot 管理(bot)

规则模板

所有的规则参数都是以下四个,具体值参见具体规则分类。

参数

类型

必要

描述

type

String

规则类型,参见具体规则分类。

status

String

规则状态,取值:on(开启),off(关闭)。

config

TargetType

规则配置,参见具体规则分类。

action

String

规则动作,参见具体规则分类。

规则分类一:防护目标类型

参数

类型

必要

示例值

描述

type

String

target_type

规则类型,取值:target_type。

status

String

on

规则开关,取值:on(开启)。

config

TargetType

{"target":"app"}

规则配置。格式如下:
target:防护目标类型,必填。取值范围包含 web(网页/浏览器)和 app(APP)。

action

String

置空

规则动作,此处不涉及,置为空值。

防护目标类型配置示例:

[
  {
    "type":"target_type",
    "status":"on",
    "config":{"target":"app"},
    "action":""
  }
]

规则分类二:Web SDK 集成

参数

类型

必要

示例值

描述

type

String

web_sdk

规则类型,取值:web_sdk。

status

String

on

规则开关,取值:on(开启)。

config

WebSdk

{"mode":"automatic","crossDomain":"example.com"}

规则配置。格式如下:
mode :Web SDK 集成方式,必填。取值范围包含 automatic(自动集成)和 manual(手动集成)。
crossDomain:跨域的域名调用,选填,仅当 mode 取值为 automatic 时生效。

action

String

置空

规则动作,此处不涉及,置为空值。

Web SDK 集成配置示例:

[
  {
    "type":"web_sdk",
    "status":"on",
    "config":{"mode":"automatic","crossDomain":"example.com"},
    "action":""
  }
]

规则分类三:防护目标特征

参数

类型

必要

示例值

描述

type

String

traffic_feature

规则类型,取值:traffic_feature。

status

String

on

规则开关,取值:on(开启)。

config

TrafficFeature

{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]}

规则配置。具体请参见 condition

action

String

置空

规则动作,此处不涉及,置为空值。

condition(匹配条件)

参数

类型

必要

示例值

描述

key

String

Header

匹配字段,具体值请参见 DescribeDcdnWafFilterInfo

subKey

String

User-Agent

匹配子字段,具体值请参见 DescribeDcdnWafFilterInfo

opValue

String

contain

操作符,具体值请参见 DescribeDcdnWafFilterInfo

values

String

Chrome

匹配内容,多值使用英文逗号分隔,具体值请参见 DescribeDcdnWafFilterInfo

防护目标特征配置示例:

[
  {
    "type":"traffic_feature",
    "status":"on",
    "config":{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]},
    "action":""
  }
]

规则分类四:合法 Bot 管理

参数

类型

必要

示例值

描述

type

String

intelligence_crawler

规则类型,取值:intelligence_crawler。

status

String

on

规则开关,取值:on(开启)。

config

IntelligenceCrawler

{"name":"intelligence_crawler_baidu"}

规则配置。取值请参见name(搜索引擎蜘蛛白名单)

action

String

bypass

规则动作,取值:bypass(放行)。

name(搜索引擎蜘蛛白名单)

参数值

含义

intelligence_crawler_all

合法搜索引擎白名单(Google、Bing、百度、搜狗、360、Yandex)

intelligence_crawler_baidu

百度蜘蛛白名单

intelligence_crawler_sogou

搜狗蜘蛛白名单

intelligence_crawler_360

360 蜘蛛白名单

intelligence_crawler_google

Google 蜘蛛白名单

intelligence_crawler_bing

Bing 蜘蛛白名单

intelligence_crawler_yandex

andex 蜘蛛白名单

合法 Bot 管理配置示例:

[
  {
    "type":"intelligence_crawler",
    "status":"on",
    "config":{"name":"intelligence_crawler_baidu"},
    "action":"bypass"
  },
  {
    "type":"intelligence_crawler",
    "status":"on",
    "config":{"name":"intelligence_crawler_google"},
    "action":"bypass"
  }
]

规则分类五:简单脚本过滤(JavaScript 挑战)

参数

类型

必要

示例值

描述

type

String

js

规则类型,取值:js。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

Js

置空

规则配置,此处不涉及,置为空值。

action

String

js

规则动作,取值:js(JS 校验)。

简单脚本过滤(JavaScript 挑战)配置示例:

[
  {
    "type":"js",
    "status":"on",
    "config":{},
    "action":"js"
  }
]

规则分类六:高级 Bot 防御(动态令牌挑战)

参数

类型

必要

示例值

描述

type

String

sigchl

规则类型,取值:sigchl。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

Sigchl

{"sigchl":["sig","replay","driver"]}

规则配置,格式如下:
sigchl :请求数据签名验证,必填。取值范围包含 sig(签名验证异常),replay(签名时间戳异常),driver(WebDriver 攻击)。

action

String

sigchl

规则动作,取值:sigchl(拦截)。

高级 Bot 防御(动态令牌挑战)配置示例:

[
  {
    "type":"sigchl",
    "status":"on",
    "config":{"sigchl":["sig","replay","driver"]},
    "action":"sigchl"
  }
]

规则分类七:AI 智能防护

参数

类型

必要

示例值

描述

type

String

algorithm

规则类型,取值:algorithm。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

Algorithm

置空

规则配置,此处不涉及,置为空值。

action

String

captcha

规则动作,取值:monitor(观察),captcha(滑块校验)。

AI 智能防护配置示例:

[
  {
    "type":"algorithm",
    "status":"on",
    "config":{},
    "action":"captcha"
  }
]

规则分类八:IP 限速

参数

类型

必要

示例值

描述

type

String

custom_cc_ip

规则类型,取值:custom_cc_ip。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

CustomCcIp

{"interval":20,"target":"IP","threshold":50,"ttl":2800}

规则配置,具体请参见IP 限速 config 参数说明

action

String

monitor

规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。

IP 限速 config 参数说明

参数

类型

必要

示例值

描述

target

String

IP

频次控制的统计字段,取值:IP。

subKey

String

置空

统一字段的子字段,此处不涉及,置为空值。

Interval

Integer

20

统计时长,取值:5~1800,单位:秒。

threshold

Integer

50

统计阈值,取值:2~50000,单位:次。

ttl

Integer

2800

黑名单超时时间,取值:60~86400,单位:秒。

IP 限速配置示例:

[
  {
    "type":"custom_cc_ip",
    "status":"on",
    "config":{"interval":20,"target":"IP","threshold":50,"ttl":2800},
    "action":"monitor"
  },
  {
    "type":"custom_cc_ip",
    "status":"on",
    "config":{"interval":10,"target":"IP","threshold":30,"ttl":1800},
    "action":"monitor"
  }
]

规则分类九:设备限速

参数

类型

必要

示例值

描述

type

String

custom_cc_dev

规则类型,取值:custom_cc_dev。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

CustomCcDev

{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800}

配置规则,具体请参见设备限速 config 参数说明

action

String

monitor

规则动作,deny(拦截),monitor(观察)。

设备限速 config 参数说明

参数

类型

必要

示例值

描述

target

String

Header

频次控制的统计字段,取值:Header。

subKey

String

aliwaf_wxbb_umid

统一字段的子字段,取值:aliwaf_wxbb_umid。

Interval

Integer

20

统计时长,取值:5~1800,单位:秒。

threshold

Integer

50

统计阈值,取值:2~50000,单位:次。

ttl

Integer

2800

黑名单超时时间,取值:60~86400,单位:秒。

设备限速配置示例:

[
  {
    "type":"custom_cc_dev",
    "status":"on",
    "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},
    "action":"monitor"
  },
  {
    "type":"custom_cc_dev",
    "status":"on",
    "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},
    "action":"deny"
  }
]

规则分类十:自定义会话限速

参数

类型

必要

示例值

描述

type

String

custom_cc

规则类型,取值:custom_cc。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

CustomCcIp

{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800}

规则配置,具体请参见自定义会话限速 config 参数说明

action

String

monitor

规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。

自定义会话限速 config 参数说明

参数

类型

必要

示例值

描述

target

String

Query String Parameter

频次控制的统计字段,取值:Header(表示统计包含指定 Header 的请求的频率),Query String Parameter(表示统计包含指定参数的请求的频率),Cookie Name(表示统计包含指定 Cookie 的请求的频率)和 Session(表示统计来自同一个会话发起请求的频率)。

subKey

String

arg

统一字段的子字段,用户自定义。

Interval

Integer

10

统计时长,取值:5~1800,单位:秒。

threshold

Integer

30

统计阈值,取值:2~50000,单位:次。

ttl

Integer

2800

黑名单超时时间,取值:60~86400,单位:秒。

自定义会话限速配置示例:

[
  {
    "type":"custom_cc",
    "status":"on",
    "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},
    "action":"deny"
  },
  {
    "type":"custom_cc",
    "status":"on",
    "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},
    "action":"captcha"
  }
]

规则分类十一:爬虫威胁情报库

参数

类型

必要

示例值

描述

type

String

intelligence

规则类型,取值:intelligence。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

Intelligence

置空

规则配置,此处不涉及,置为空值。

action

String

captcha

规则动作,取值:monitor(观察),captcha(滑块校验)。

爬虫威胁情报库配置示例:

[
  {
    "type":"intelligence",
    "status":"on",
    "config":{},
    "action":"captcha"
  }
]

规则分类十二:IDC 黑名单封禁

参数

类型

必要

示例值

描述

type

String

intelligence_idc

规则类型,取值:intelligence_idc。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

IntelligenceIdc

{"name":"intelligence_idc_alibaba"}

规则配置,取值请参见name 参数说明

action

String

captcha

规则动作,取值:deny(拦截),monitor(观察),captcha(滑块校验)。

name 参数说明

参数值

含义

intelligence_idc_alibaba

IDC IP 库-阿里云

intelligence_idc_tencent

IDC IP 库-腾讯云

intelligence_idc_mtyun

IDC IP 库-美团云

intelligence_idc_vnet

IDC IP 库-世纪互联

intelligence_idc_other

IDC IP 库-其他

IDC 黑名单封禁配置示例:

[
  {
    "type":"intelligence_idc",
    "status":"on",
    "config":{"name":"intelligence_idc_alibaba"},
    "action":"captcha"
  },
  {
    "type":"intelligence_idc",
    "status":"on",
    "config":{"name":"intelligence_idc_tencent"},
    "action":"captcha"
  }
]

规则分类十三:伪造蜘蛛拦截

参数

类型

必要

示例值

描述

type

String

intelligence_fake_crawler

规则类型,取值:intelligence_fake_crawler。

status

String

on

规则开关,取值:on(开启),off(关闭)。

config

IntelligenceFakeCrawler

置空

规则配置,此处不涉及,置为空值。

action

String

deny

规则动作,取值:deny(拦截)。

伪造蜘蛛拦截配置示例:

[
  {
    "type": "intelligence_fake_crawler",
    "status": "on",
    "config":{},
    "action": "deny"
  }
]

规则分类十四:Bot 特征识别

参数

类型

必要

示例值

描述

type

String

app_sdk

规则类型,取值:app_sdk。

status

String

on

规则开关,取值:on(开启)。

config

AppSdk

{"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}}

规则配置,具体请参见Bot 特征识别 config 参数说明

action

String

monitor

规则动作,取值:deny(拦截),monitor(观察)。

Bot 特征识别 config 参数说明

参数

类型

必要

示例值

描述

featureAbnormal

[]String

simulator

signInvalid:APP 签名异常。
antiReplay:签名过期。
simulator:使用模拟器
proxy:使用代理
root:Root 设备
debugged:调试模式。
hook:APP 被 hook。
virtual :APP 多开。






customSignStatus

String

on

自定义加签字段开关,取值:on(开启),off(关闭)。

customSign

CustomSign

{"key":"header","value":"ua"}

自定义加签字段,格式如下:
key :字段名,必填。取值为 header、arg、cookie。
value:字段值,必填。

Bot 特征识别配置示例:

[
  {
    "type": "app_sdk",
    "status": "on",
    "config": {"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}},
    "action": "monitor"
  }
]

规则分类十五:高级防护(二次打包检测)

参数

类型

必要

示例值

描述

type

String

app_package

规则类型,取值:app_package。

status

String

on

规则开关,取值:on(开启)。

config

AppPackage

{"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]}

规则配置,具体请参见packageSigns 参数说明

action

String

monitor

规则动作,取值:deny(拦截),monitor(观察)。

packageSigns 参数说明

参数

类型

必要

示例值

描述

name

String

aaaaa

指定合法包名。

sign

String

bbbb

包签名。

高级防护(二次打包检测)配置示例:

[
  {
    "type": "app_package",
    "status": "on",
    "config": {"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]},
    "action": "deny"
  }
]

Bot 管理网页/浏览器防护组合参数配置示例

[
    {
        "type": "target_type",
        "status": "on",
        "config":
        {
            "target": "web"
        },
        "action": ""
    },
    {
        "type": "web_sdk",
        "status": "on",
        "config":
        {
            "mode": "automatic",
            "crossDomain": "example.com"
        },
        "action": ""
    },
    {
        "type": "traffic_feature",
        "status": "on",
        "config":
        {
            "conditions":
            [
                {
                    "key": "Header",
                    "subKey": "User-Agent",
                    "opValue": "contain",
                    "values": "Chrome"
                },
                {
                    "key": "IP",
                    "subKey": "",
                    "opValue": "ip-contain",
                    "values": "192.168.0.1/24"
                }
            ]
        },
        "action": ""
    },
    {
        "type": "intelligence_crawler",
        "status": "on",
        "config":
        {
            "name": "intelligence_crawler_baidu"
        },
        "action": "bypass"
    },
    {
        "type": "intelligence_crawler",
        "status": "on",
        "config":
        {
            "name": "intelligence_crawler_google"
        },
        "action": "bypass"
    },
    {
        "type": "js",
        "status": "on",
        "config":
        {},
        "action": "js"
    },
    {
        "type": "sigchl",
        "status": "on",
        "config":
        {
            "sigchl":
            [
                "sig",
                "replay",
                "driver"
            ]
        },
        "action": "sigchl"
    },
    {
        "type": "algorithm",
        "status": "on",
        "config":
        {},
        "action": "captcha"
    },
    {
        "type": "custom_cc_ip",
        "status": "on",
        "config":
        {
            "interval": 20,
            "target": "IP",
            "threshold": 50,
            "ttl": 2800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc_ip",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "IP",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "Query String Parameter",
            "subKey": "arg",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "deny"
    },
    {
        "type": "custom_cc",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "Query String Parameter",
            "subKey": "arg",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "captcha"
    },
    {
        "type": "intelligence",
        "status": "on",
        "config":
        {},
        "action": "captcha"
    },
    {
        "type": "intelligence_idc",
        "status": "on",
        "config":
        {
            "name": "intelligence_idc_alibaba"
        },
        "action": "captcha"
    },
    {
        "type": "intelligence_idc",
        "status": "on",
        "config":
        {
            "name": "intelligence_idc_tencent"
        },
        "action": "captcha"
    },
    {
        "type": "intelligence_fake_crawler",
        "status": "on",
        "config":
        {},
        "action": "deny"
    }
]

Bot 管理 APP 防护组合参数配置示例

[
    {
        "type": "target_type",
        "status": "on",
        "config":
        {
            "target": "app"
        },
        "action": ""
    },
    {
        "type": "traffic_feature",
        "status": "on",
        "config":
        {
            "conditions":
            [
                {
                    "key": "Header",
                    "subKey": "User-Agent",
                    "opValue": "contain",
                    "values": "Chrome"
                },
                {
                    "key": "IP",
                    "subKey": "",
                    "opValue": "ip-contain",
                    "values": "192.168.0.1/24"
                }
            ]
        },
        "action": ""
    },
    {
        "type": "custom_cc_ip",
        "status": "on",
        "config":
        {
            "interval": 20,
            "target": "IP",
            "threshold": 50,
            "ttl": 2800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc_ip",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "IP",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc_dev",
        "status": "on",
        "config":
        {
            "interval": 20,
            "target": "Header",
            "subKey": "aliwaf_wxbb_umid",
            "threshold": 50,
            "ttl": 2800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc_dev",
        "status": "on",
        "config":
        {
            "interval": 20,
            "target": "Header",
            "subKey": "aliwaf_wxbb_umid",
            "threshold": 50,
            "ttl": 2800
        },
        "action": "deny"
    },
    {
        "type": "custom_cc",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "Query String Parameter",
            "subKey": "arg",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "monitor"
    },
    {
        "type": "custom_cc",
        "status": "on",
        "config":
        {
            "interval": 10,
            "target": "Query String Parameter",
            "subKey": "arg",
            "threshold": 30,
            "ttl": 1800
        },
        "action": "deny"
    },
    {
        "type": "app_sdk",
        "status": "on",
        "config":
        {
            "featureAbnormal":
            [
                "simulator",
                "proxy",
                "root",
                "debugged",
                "hook",
                "virtual",
                "antiReplay",
                "signInvalid"
            ],
            "customSignStatus": "on",
            "customSign":
            {
                "key": "header",
                "value": "ua"
            }
        },
        "action": "monitor"
    },
    {
        "type": "app_package",
        "status": "on",
        "config":
        {
            "packageSigns":
            [
                {
                    "name": "aaaaa",
                    "sign": "bbbb"
                },
                {
                    "name": "cccc",
                    "sign": "dddd"
                }
            ]
        },
        "action": "deny"
    }
]

防护场景 7:扫描防护(anti_scan)

规则模板

所有的规则参数都是以下四个,具体值请参见对应规则分类。

参数

类型

是否必选

描述

type

String

规则类型:参见对应规则分类。

status

String

规则状态,取值:on(开启),off(关闭)。

config

Type

规则配置:参见对应规则分类。

action

String

规则动作:参见对应规则分类。

规则分类一:高频扫描封禁

参数

类型

是否必选

示例值

描述

type

String

high_frequency

规则类型,取值:high_frequency 。

status

String

on

规则开关,取值:on(开启),off(关闭)。默认为 on。

config

HighFrequency

{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}

规则配置,具体请参见下方结构体字符串。

action

String

deny

规则动作,取值:deny(拦截),moniter(观察)。

  • HighFrequency 说明

参数

类型

是否必选

示例值

描述

target

String

IP

频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。

subKey

String

yoursubKey

统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。

interval

Integer

20

检测时间范围,取值:5~1800,单位:秒。

wafBlockThreshold

Integer

20

基础防护规则触发次数,取值:3~50000。

ttl

Integer

1800

封禁时间,取值:60~86400,单位:秒。

distinctWafRuleThreshold

Integer

2

触发规则数大于,取值:1~50。

[
  {
    "type":"high_frequency",
    "status":"on",
    "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
    "action":"deny"
  }
]

规则分类二:目录遍历封禁

参数

类型

是否必选

示例值

描述

type

String

directory_traversal

规则类型,取值:directory_traversal。

status

String

on

规则开关,取值:on(开启),off(关闭)。默认为 on。

config

DirectoryTraversal

{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}

规则配置,具体请参见下方结构体字符串。

action

String

deny

规则动作,取值:deny(拦截),moniter(观察)。

  • DirectoryTraversal 说明

参数

类型

是否必选

示例值

描述

target

String

IP

频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。

subKey

String

yoursubKey

统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。

interval

Integer

10

检测时间范围,取值:5~1800,单位:秒。

threshold

Integer

50

针对当前防护对象请求次数超过,取值:2~50000。

status

RateLimitStatus

{"code":"404","ratio":70,"count":50}

响应码。

ttl

Integer

1800

封禁时间,取值:60~86400,单位:秒。

  • RateLimitStatus 说明

参数

类型

是否必选

示例值

描述

code

String

示例值

HTTP 状态码,取值:404。

ratio

Integer

示例值

404 响应码占比,取值:1~100。

count

Integer

示例值

不存在的目录数量,取值:2~50000。

[
  {
    "type":"directory_traversal",
    "status":"on",
    "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},
    "action":"deny"
  }
]

规则分类三:扫描工具封禁

参数

类型

是否必选

示例值

描述

type

String

scan_tools

规则类型,取值:scan_tools。

status

String

on

规则开关,取值:on(开启),off(关闭)。默认为 on。

config

ScanTools

规则配置,这里不填。

action

String

deny

规则动作,取值:deny(拦截),moniter(观察)。

[
  {
    "type":"scan_tools",
    "status":"on",
    "config":{},
    "action":"deny"
  }
]

最终组合参数

[
    {
    "type":"high_frequency",
    "status":"on",
    "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
    "action":"deny"
  },
  {
    "type":"directory_traversal",
    "status":"on",
    "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},
    "action":"deny"
  },
  {
    "type":"scan_tools",
    "status":"on",
    "config":{},
    "action":"deny"
  }
]

返回参数

名称

类型

描述

示例值

object

RequestId

string

请求 ID。

CB1A380B-09F0-41BB-280B-72F8FD6DA2FE

RuleIds

object

RuleId

array

string

创建的规则 ID 列表。

100001,200002

示例

正常返回示例

JSON格式

{
  "RequestId": "CB1A380B-09F0-41BB-280B-72F8FD6DA2FE",
  "RuleIds": {
    "RuleId": [
      "100001,200002"
    ]
  }
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidParameter The specified parameter is invalid. 参数错误
400 Policy.NotExist The specified policy does not exist. 指定的防护策略不存在。
400 RuleConfigs.Malformed The specified RuleConfigs format is invalid. 指定的参数RuleConfigs格式错误。
400 RuleName.AlreadyExists Rule name already exists in specified policy. 规则名称在指定的策略中已存在。
400 Rule.QuantityOverflow Rules are overflowed quantity in specified policy. 规则在指定的策略中超出配额。
500 InternalError An internal error occurred; please try again later. 内部错误,请重试,如果多次重试报错请提交工单。
403 %s.NotSupport The specified resource type %s is not supported. 不支持指定的资源类型。如需使用该类型资源,请与我们联系。
403 %s.OverQuota The quantity of %s exceeds the quota. 该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情