BatchCreateDcdnWafRules - 配置防护规则

更新时间: 2023-09-28 11:09:49

调用BatchCreateDcdnWafRules设置WAF防护规则。

接口说明

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

调试

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

调试

授权信息

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

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
dcdn:BatchCreateDcdnWafRulesWrite
  • acs:dcdn::{#accountId}:*

请求参数

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

防护策略ID。

1000001
RuleConfigsstring

防护规则配置。

{"name":"ttttt","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"testheader","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"testheadercc","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
string

创建的规则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 错误码发生变更看变更集
变更项变更内容
错误码OpenAPI 错误码发生变更
    删除错误码:400
    删除错误码:500
    新增错误码:403
阿里云首页 全站加速 DCDN 相关技术圈