全部产品
Search
文档中心

边缘安全加速:BatchCreateDcdnWafRules - 配置防护规则

更新时间:Oct 17, 2024

调用BatchCreateDcdnWafRules设置WAF防护规则。

接口说明

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

调试

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

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
PolicyIdlong

防护策略 ID。

1000001
RuleConfigsstring

防护规则配置。

[{"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)

参数类型必要示例值描述
statusStringon防护规则开关,取值:on(开启),off(关闭)。默认为 on。
actionStringblock规则动作,取值:block(拦截),monitor(观察)。
wafGroupIdsString1012WAF 规则组 ID,默认为"1012",多个 ID 使用半角逗号(,)分隔。

waf_group 配置示例:

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

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

名称类型是否必选示例值描述
namestringacl_1防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。
statusstringon取值:on(开启),off(关闭)。默认为 on。
conditionsCondition[ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }]触发规则条件,具体参数请参考表 1 Condition 参数说明
ccStatusstringoff频次控制开关,on(开启),off(关闭)。
rateLimitRateLimit{ "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800}具体的频次控制规则,当 ccStatus 为 on 时必填。具体参数请参考表 2 RateLimit 参数说明
effectstringservice频次控制黑名单的生效范围,当 ccStatus 为 on 时必填,取值:rule(当前规则生效),service(全局生效)。
actionstringdeny规则动作,取值:deny(拦截)、js(JS 验证)、monitor(观察)。

表 1 Condition 参数说明

名称类型是否必选示例值描述
KeystringQuery String Parameter匹配字段,具体请参考 DescribeDcdnWafFilterInfo
subKeystringaction匹配子字段,具体请参考 DescribeDcdnWafFilterInfo
opValueStringeq逻辑符,具体请参考 DescribeDcdnWafFilterInfo
valuesStringjs匹配内容,多值使用英文逗号(,)分隔,具体值参考 DescribeDcdnWafFilterInfo

表 2 RateLimit 参数说明

名称类型是否必选示例值描述
targetstringHeader频次控制的统计字段,取值:IP:表示统计同一个 IP 发起请求的频率。Header:表示统计包含指定 Header 的请求的频率。Query String Parameter:表示统计包含指定参数的请求的频率。Cookie Name:表示统计包含指定 Cookie 的请求的频率。Session:表示统计来自同一个会话发起请求的频率。
subKeystringUser-Agent统一字段的子字段,当 target 为 Header、Query String Parameter 或 Cookie Name 时必填。
IntervalInteger5统计时长。取值范围:5~1800。单位:秒。
thresholdInteger2统计阈值。取值范围:2~500000。单位:次。
ttlInteger1800黑名单超时时间。取值范围:60~86400。单位:秒。
statusRateLimitStatus{"code": "404", "ratio": 10}响应码统计。具体参数请参考表 3 RateLimitStatus 参数说明

表 3 RateLimitStatus 参数说明

名称类型是否必选示例值描述
codetstring404HTTP 状态码。
ratioInteger10按比例(%)统计。取值:1~100,与 count 字段二选一。
countInteger10按数量统计。取值: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)

名称类型是否必选示例值描述
namestringon防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。
statusstringon防护规则开关,取值:on(默认):开启。off:关闭。
conditionsCondition[{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }]触发规则的条件。具体参数请参考表 1 Condition 参数说明
tagsString[ "waf_group", "custom_acl"]防护策略类型列表。
regularTypesString[ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"]正则规则类型,当 tags 中出现 waf_group 时,此值可填,可选值:["sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", "other"]。
regularRulesString[ "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)

名称类型是否必选示例值描述
namestringipblacklist防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。
statusstringon防护规则开关,取值:取值:on(开启),off(关闭)。默认为 on。
remoteAddr[]String["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"]按 IP 地址过滤,具体请参见 DescribeDcdnWafFilterInfo
actionstringdeny规则动作,取值: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)

名称类型是否必选示例值描述
statusstringon防护规则开关,取值:on(开启),off(关闭)。默认为 on。
cnRegionListstring110000,TW,MO中国境内封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo
otherRegionListstringJP,GB中国境外封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo
actionstringdeny规则动作,取值:deny(拦截),monitor(观察)。
说明 cnRegionList 和 otherRegionList 至少填写其中一个。

region_block 配置示例:

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

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

规则模板

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

参数类型必要描述
typeString规则类型,参见具体规则分类。
statusString规则状态,取值:on(开启),off(关闭)。
configTargetType规则配置,参见具体规则分类。
actionString规则动作,参见具体规则分类。

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

参数类型必要示例值描述
typeStringtarget_type规则类型,取值:target_type。
statusStringon规则开关,取值:on(开启)。
configTargetType{"target":"app"}规则配置。格式如下:
target:防护目标类型,必填。取值范围包含 web(网页/浏览器)和 app(APP)。
actionString置空规则动作,此处不涉及,置为空值。

防护目标类型配置示例:

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

规则分类二:Web SDK 集成

参数类型必要示例值描述
typeStringweb_sdk规则类型,取值:web_sdk。
statusStringon规则开关,取值:on(开启)。
configWebSdk{"mode":"automatic","crossDomain":"example.com"}规则配置。格式如下:
mode :Web SDK 集成方式,必填。取值范围包含 automatic(自动集成)和 manual(手动集成)。
crossDomain:跨域的域名调用,选填,仅当 mode 取值为 automatic 时生效。
actionString置空规则动作,此处不涉及,置为空值。

Web SDK 集成配置示例:

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

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

参数类型必要示例值描述
typeStringtraffic_feature规则类型,取值:traffic_feature。
statusStringon规则开关,取值:on(开启)。
configTrafficFeature{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]}规则配置。具体请参见 condition
actionString置空规则动作,此处不涉及,置为空值。

condition(匹配条件)

参数类型必要示例值描述
keyStringHeader匹配字段,具体值请参见 DescribeDcdnWafFilterInfo
subKeyStringUser-Agent匹配子字段,具体值请参见 DescribeDcdnWafFilterInfo
opValueStringcontain操作符,具体值请参见 DescribeDcdnWafFilterInfo
valuesStringChrome匹配内容,多值使用英文逗号分隔,具体值请参见 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 管理

参数类型必要示例值描述
typeStringintelligence_crawler规则类型,取值:intelligence_crawler。
statusStringon规则开关,取值:on(开启)。
configIntelligenceCrawler{"name":"intelligence_crawler_baidu"}规则配置。取值请参见name(搜索引擎蜘蛛白名单)
actionStringbypass规则动作,取值:bypass(放行)。

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

参数值含义
intelligence_crawler_all合法搜索引擎白名单(Google、Bing、百度、搜狗、360、Yandex)
intelligence_crawler_baidu百度蜘蛛白名单
intelligence_crawler_sogou搜狗蜘蛛白名单
intelligence_crawler_360360 蜘蛛白名单
intelligence_crawler_googleGoogle 蜘蛛白名单
intelligence_crawler_bingBing 蜘蛛白名单
intelligence_crawler_yandexandex 蜘蛛白名单

合法 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 挑战)

参数类型必要示例值描述
typeStringjs规则类型,取值:js。
statusStringon规则开关,取值:on(开启),off(关闭)。
configJs置空规则配置,此处不涉及,置为空值。
actionStringjs规则动作,取值:js(JS 校验)。

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

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

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

参数类型必要示例值描述
typeStringsigchl规则类型,取值:sigchl。
statusStringon规则开关,取值:on(开启),off(关闭)。
configSigchl{"sigchl":["sig","replay","driver"]}规则配置,格式如下:
sigchl :请求数据签名验证,必填。取值范围包含 sig(签名验证异常),replay(签名时间戳异常),driver(WebDriver 攻击)。
actionStringsigchl规则动作,取值:sigchl(拦截)。

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

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

规则分类七:AI 智能防护

参数类型必要示例值描述
typeStringalgorithm规则类型,取值:algorithm。
statusStringon规则开关,取值:on(开启),off(关闭)。
configAlgorithm置空规则配置,此处不涉及,置为空值。
actionStringcaptcha规则动作,取值:monitor(观察),captcha(滑块校验)。

AI 智能防护配置示例:

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

规则分类八:IP 限速

参数类型必要示例值描述
typeStringcustom_cc_ip规则类型,取值:custom_cc_ip。
statusStringon规则开关,取值:on(开启),off(关闭)。
configCustomCcIp{"interval":20,"target":"IP","threshold":50,"ttl":2800}规则配置,具体请参见IP 限速 config 参数说明
actionStringmonitor规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。

IP 限速 config 参数说明

参数类型必要示例值描述
targetStringIP频次控制的统计字段,取值:IP。
subKeyString置空统一字段的子字段,此处不涉及,置为空值。
IntervalInteger20统计时长,取值:5~1800,单位:秒。
thresholdInteger50统计阈值,取值:2~50000,单位:次。
ttlInteger2800黑名单超时时间,取值: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"
  }
]

规则分类九:设备限速

参数类型必要示例值描述
typeStringcustom_cc_dev规则类型,取值:custom_cc_dev。
statusStringon规则开关,取值:on(开启),off(关闭)。
configCustomCcDev{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800}配置规则,具体请参见设备限速 config 参数说明
actionStringmonitor规则动作,deny(拦截),monitor(观察)。

设备限速 config 参数说明

参数类型必要示例值描述
targetStringHeader频次控制的统计字段,取值:Header。
subKeyStringaliwaf_wxbb_umid统一字段的子字段,取值:aliwaf_wxbb_umid。
IntervalInteger20统计时长,取值:5~1800,单位:秒。
thresholdInteger50统计阈值,取值:2~50000,单位:次。
ttlInteger2800黑名单超时时间,取值: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"
  }
]

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

参数类型必要示例值描述
typeStringcustom_cc规则类型,取值:custom_cc。
statusStringon规则开关,取值:on(开启),off(关闭)。
configCustomCcIp{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800}规则配置,具体请参见自定义会话限速 config 参数说明
actionStringmonitor规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。

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

参数类型必要示例值描述
targetStringQuery String Parameter频次控制的统计字段,取值:Header(表示统计包含指定 Header 的请求的频率),Query String Parameter(表示统计包含指定参数的请求的频率),Cookie Name(表示统计包含指定 Cookie 的请求的频率)和 Session(表示统计来自同一个会话发起请求的频率)。
subKeyStringarg统一字段的子字段,用户自定义。
IntervalInteger10统计时长,取值:5~1800,单位:秒。
thresholdInteger30统计阈值,取值:2~50000,单位:次。
ttlInteger2800黑名单超时时间,取值: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"
  }
]

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

参数类型必要示例值描述
typeStringintelligence规则类型,取值:intelligence。
statusStringon规则开关,取值:on(开启),off(关闭)。
configIntelligence置空规则配置,此处不涉及,置为空值。
actionStringcaptcha规则动作,取值:monitor(观察),captcha(滑块校验)。

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

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

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

参数类型必要示例值描述
typeStringintelligence_idc规则类型,取值:intelligence_idc。
statusStringon规则开关,取值:on(开启),off(关闭)。
configIntelligenceIdc{"name":"intelligence_idc_alibaba"}规则配置,取值请参见name 参数说明
actionStringcaptcha规则动作,取值:deny(拦截),monitor(观察),captcha(滑块校验)。

name 参数说明

参数值含义
intelligence_idc_alibabaIDC IP 库-阿里云
intelligence_idc_tencentIDC IP 库-腾讯云
intelligence_idc_mtyunIDC IP 库-美团云
intelligence_idc_vnetIDC IP 库-世纪互联
intelligence_idc_otherIDC 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"
  }
]

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

参数类型必要示例值描述
typeStringintelligence_fake_crawler规则类型,取值:intelligence_fake_crawler。
statusStringon规则开关,取值:on(开启),off(关闭)。
configIntelligenceFakeCrawler置空规则配置,此处不涉及,置为空值。
actionStringdeny规则动作,取值:deny(拦截)。

伪造蜘蛛拦截配置示例:

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

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

参数类型必要示例值描述
typeStringapp_sdk规则类型,取值:app_sdk。
statusStringon规则开关,取值:on(开启)。
configAppSdk{"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}}规则配置,具体请参见Bot 特征识别 config 参数说明
actionStringmonitor规则动作,取值:deny(拦截),monitor(观察)。

Bot 特征识别 config 参数说明

参数类型必要示例值描述
featureAbnormal[]StringsimulatorsignInvalid:APP 签名异常。
antiReplay:签名过期。
simulator:使用模拟器
proxy:使用代理
root:Root 设备
debugged:调试模式。
hook:APP 被 hook。
virtual :APP 多开。
customSignStatusStringon自定义加签字段开关,取值:on(开启),off(关闭)。
customSignCustomSign{"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"
  }
]

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

参数类型必要示例值描述
typeStringapp_package规则类型,取值:app_package。
statusStringon规则开关,取值:on(开启)。
configAppPackage{"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]}规则配置,具体请参见packageSigns 参数说明
actionStringmonitor规则动作,取值:deny(拦截),monitor(观察)。

packageSigns 参数说明

参数类型必要示例值描述
nameStringaaaaa指定合法包名。
signStringbbbb包签名。

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

[
  {
    "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)

规则模板

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

参数类型是否必选描述
typeString规则类型:参见对应规则分类。
statusString规则状态,取值:on(开启),off(关闭)。
configType规则配置:参见对应规则分类。
actionString规则动作:参见对应规则分类。

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

参数类型是否必选示例值描述
typeStringhigh_frequency规则类型,取值:high_frequency 。
statusStringon规则开关,取值:on(开启),off(关闭)。默认为 on。
configHighFrequency{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}规则配置,具体请参见下方结构体字符串。
actionStringdeny规则动作,取值:deny(拦截),moniter(观察)。
  • HighFrequency 说明
参数类型是否必选示例值描述
targetStringIP频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。
subKeyStringyoursubKey统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。
intervalInteger20检测时间范围,取值:5~1800,单位:秒。
wafBlockThresholdInteger20基础防护规则触发次数,取值:3~50000。
ttlInteger1800封禁时间,取值:60~86400,单位:秒。
distinctWafRuleThresholdInteger2触发规则数大于,取值:1~50。
[
  {
    "type":"high_frequency",
    "status":"on",
    "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
    "action":"deny"
  }
]

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

参数类型是否必选示例值描述
typeStringdirectory_traversal规则类型,取值:directory_traversal。
statusStringon规则开关,取值:on(开启),off(关闭)。默认为 on。
configDirectoryTraversal{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}规则配置,具体请参见下方结构体字符串。
actionStringdeny规则动作,取值:deny(拦截),moniter(观察)。
  • DirectoryTraversal 说明
参数类型是否必选示例值描述
targetStringIP频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。
subKeyStringyoursubKey统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。
intervalInteger10检测时间范围,取值:5~1800,单位:秒。
thresholdInteger50针对当前防护对象请求次数超过,取值:2~50000。
statusRateLimitStatus{"code":"404","ratio":70,"count":50}响应码。
ttlInteger1800封禁时间,取值:60~86400,单位:秒。
  • RateLimitStatus 说明
参数类型是否必选示例值描述
codeString示例值HTTP 状态码,取值:404。
ratioInteger示例值404 响应码占比,取值:1~100。
countInteger示例值不存在的目录数量,取值: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"
  }
]

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

参数类型是否必选示例值描述
typeStringscan_tools规则类型,取值:scan_tools。
statusStringon规则开关,取值:on(开启),off(关闭)。默认为 on。
configScanTools规则配置,这里不填。
actionStringdeny规则动作,取值: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
RequestIdstring

请求 ID。

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

创建的规则 ID 列表。

100001,200002

示例

正常返回示例

JSON格式

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

错误码

HTTP status code错误码错误信息描述
400InvalidParameterThe specified parameter is invalid.参数错误
400Policy.NotExistThe specified policy does not exist.指定的防护策略不存在。
400RuleConfigs.MalformedThe specified RuleConfigs format is invalid.指定的参数RuleConfigs格式错误。
400RuleName.AlreadyExistsRule name already exists in specified policy.规则名称在指定的策略中已存在。
400Rule.QuantityOverflowRules are overflowed quantity in specified policy.规则在指定的策略中超出配额。
403%s.NotSupportThe specified resource type %s is not supported.不支持指定的资源类型。如需使用该类型资源,请与我们联系。
403%s.OverQuotaThe quantity of %s exceeds the quota.该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。
500InternalErrorAn internal error occurred; please try again later.内部错误,请重试,如果多次重试报错请提交工单。

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

变更历史

变更时间变更内容概要操作
2023-08-29OpenAPI 错误码发生变更查看变更详情