BatchCreateDcdnWafRules - 配置防护规则

更新时间:
复制 MD 格式

调用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)

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

waf_group 配置示例:

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

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

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

表 1 Condition 参数说明

名称类型是否必选示例值描述
Keystring是Query String Parameter匹配字段,具体请参考 DescribeDcdnWafFilterInfo 。
subKeystring否action匹配子字段,具体请参考 DescribeDcdnWafFilterInfo 。
opValueString是eq逻辑符,具体请参考 DescribeDcdnWafFilterInfo 。
valuesString否js匹配内容,多值使用英文逗号(,)分隔,具体值参考 DescribeDcdnWafFilterInfo 。

表 2 RateLimit 参数说明

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

表 3 RateLimitStatus 参数说明

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

名称类型是否必选示例值描述
namestring是on防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。
statusstring否on防护规则开关,取值: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)

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

名称类型是否必选示例值描述
statusstring否on防护规则开关,取值:on(开启),off(关闭)。默认为 on。
cnRegionListstring否110000,TW,MO中国境内封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo 。
otherRegionListstring否JP,GB中国境外封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo 。
actionstring是deny规则动作,取值: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否规则动作,参见具体规则分类。

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

参数类型必要示例值描述
typeString是target_type规则类型,取值:target_type。
statusString是on规则开关,取值:on(开启)。
configTargetType否{"target":"app"}规则配置。格式如下:
target:防护目标类型,必填。取值范围包含 web(网页/浏览器)和 app(APP)。

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

防护目标类型配置示例:

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

规则分类二:Web SDK 集成

参数类型必要示例值描述
typeString是web_sdk规则类型,取值:web_sdk。
statusString是on规则开关,取值: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":""
  }
]

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

参数类型必要示例值描述
typeString是traffic_feature规则类型,取值:traffic_feature。
statusString是on规则开关,取值: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(匹配条件)

参数类型必要示例值描述
keyString是Header匹配字段,具体值请参见 DescribeDcdnWafFilterInfo 。
subKeyString否User-Agent匹配子字段,具体值请参见 DescribeDcdnWafFilterInfo 。
opValueString是contain操作符,具体值请参见 DescribeDcdnWafFilterInfo 。
valuesString否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 管理

参数类型必要示例值描述
typeString是intelligence_crawler规则类型,取值:intelligence_crawler。
statusString是on规则开关,取值:on(开启)。
configIntelligenceCrawler否{"name":"intelligence_crawler_baidu"}规则配置。取值请参见name(搜索引擎蜘蛛白名单)。
actionString是bypass规则动作,取值: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 挑战)

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

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

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

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

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

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

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

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

规则分类七:AI 智能防护

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

AI 智能防护配置示例:

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

规则分类八:IP 限速

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

IP 限速 config 参数说明

参数类型必要示例值描述
targetString是IP频次控制的统计字段,取值:IP。
subKeyString否置空统一字段的子字段,此处不涉及,置为空值。
IntervalInteger是20统计时长,取值:5~1800,单位:秒。
thresholdInteger是50统计阈值,取值:2~50000,单位:次。
ttlInteger是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"
  }
]

规则分类九:设备限速

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

设备限速 config 参数说明

参数类型必要示例值描述
targetString是Header频次控制的统计字段,取值:Header。
subKeyString否aliwaf_wxbb_umid统一字段的子字段,取值:aliwaf_wxbb_umid。
IntervalInteger是20统计时长,取值:5~1800,单位:秒。
thresholdInteger是50统计阈值,取值:2~50000,单位:次。
ttlInteger是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"
  }
]

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

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

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

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

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

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

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

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

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

参数类型必要示例值描述
typeString是intelligence_idc规则类型,取值:intelligence_idc。
statusString是on规则开关,取值:on(开启),off(关闭)。
configIntelligenceIdc是{"name":"intelligence_idc_alibaba"}规则配置,取值请参见name 参数说明。
actionString是captcha规则动作,取值: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"
  }
]

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

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

伪造蜘蛛拦截配置示例:

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

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

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

Bot 特征识别 config 参数说明

参数类型必要示例值描述
featureAbnormal[]String是simulatorsignInvalid:APP 签名异常。
antiReplay:签名过期。
simulator:使用模拟器
proxy:使用代理
root:Root 设备
debugged:调试模式。
hook:APP 被 hook。
virtual :APP 多开。



















customSignStatusString否on自定义加签字段开关,取值: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"
  }
]

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

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

packageSigns 参数说明

参数类型必要示例值描述
nameString是aaaaa指定合法包名。
signString否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)

规则模板

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

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

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

参数类型是否必选示例值描述
typeString是high_frequency规则类型,取值:high_frequency 。
statusString是on规则开关,取值:on(开启),off(关闭)。默认为 on。
configHighFrequency否{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}规则配置,具体请参见下方结构体字符串。
actionString否deny规则动作,取值:deny(拦截),moniter(观察)。
  • HighFrequency 说明

参数类型是否必选示例值描述
targetString是IP频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。
subKeyString否yoursubKey统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。
intervalInteger是20检测时间范围,取值:5~1800,单位:秒。
wafBlockThresholdInteger是20基础防护规则触发次数,取值:3~50000。
ttlInteger是1800封禁时间,取值:60~86400,单位:秒。
distinctWafRuleThresholdInteger是2触发规则数大于,取值:1~50。
[
  {
    "type":"high_frequency",
    "status":"on",
    "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
    "action":"deny"
  }
]

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

参数类型是否必选示例值描述
typeString是directory_traversal规则类型,取值:directory_traversal。
statusString是on规则开关,取值:on(开启),off(关闭)。默认为 on。
configDirectoryTraversal否{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}规则配置,具体请参见下方结构体字符串。
actionString否deny规则动作,取值:deny(拦截),moniter(观察)。
  • DirectoryTraversal 说明

参数类型是否必选示例值描述
targetString是IP频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。
subKeyString否yoursubKey统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。
intervalInteger是10检测时间范围,取值:5~1800,单位:秒。
thresholdInteger是50针对当前防护对象请求次数超过,取值:2~50000。
statusRateLimitStatus是{"code":"404","ratio":70,"count":50}响应码。
ttlInteger是1800封禁时间,取值: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"
  }
]

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

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

防护规则 ID 列表。

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. 该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。

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

变更历史

更多信息,参考变更详情。