查询WAF防护功能规则配置记录,如Web入侵防护、数据安全、Bot管理、访问控制或限流、网站白名单。
接口说明
本接口用于分页查询指定 WAF 防护功能模块(包括 Web 入侵防护、数据安全、Bot 管理、访问控制或限流、网站白名单等模块)的规则配置记录。 您可以通过设置 DefenseType 参数值指定防护功能模块配置。具体参数值的含义,请参见请求参数 DefenseType 的描述。 请注意,为了确保系统的文档性,对单用户 QPS 限制为 50 次/秒。超过限制,API 调用将会被限流,这可能影响您的业务,请合理调用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
yundun-waf:DescribeProtectionModuleRules | Read |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
PageSize | integer | 否 | 分页查询时,设置每页返回规则的数量。默认值为 10。 | 10 |
PageNumber | integer | 否 | 分页查询时,设置当前页面的页面。默认值为 1。 | 1 |
Domain | string | 否 | 要查询的域名。具体说明如下:
| www.aliyundoc.com |
DefenseType | string | 是 | 要查询的防护功能配置的类型。取值:
| ac_highfreq |
Query | string | 否 | 设置规则的过滤和排序,以 JSON 格式字符串表达,具体包含以下参数: 说明
该参数必须使用 Base64 编码格式,请按照以下参数说明构造 JSON 格式字符串后将其转换为 Base64 编码格式。
| e2ZpbHRlcjp7InJ1bGVJZCI6NDI3NTV9LG9yZGVyQnk6ImdtdF9tb2RpZmllZCIsZGVzYzp0cnVlfQ== |
Lang | string | 否 | 设置规则名称的语言属性,取值:
| zh |
InstanceId | string | 是 | WAF 实例的 ID。 说明
您可以调用 DescribeInstanceInfo 查询当前 WAF 实例的 ID。
| waf_elasticity-cn-0xldbqt**** |
ResourceGroupId | string | 否 | WAF 实例在资源管理服务中所属的资源组 ID。 不设置该参数表示默认资源组。 | rg-acfm2pz25js**** |
RegionId | string | 否 | WAF 实例所属地域。取值:
| cn-hangzhou |
调用 API 时,除了本文中该 API 的请求参数,还需加入阿里云 API 公共请求参数。公共请求参数的详细介绍,请参见公共参数。
调用 API 的请求格式,请参见本文示例中的请求示例。
返回参数
Content 参数具体说明
-
规则防护引擎解码设置(waf-codec)对应的 JSON 字符串中包含以下参数:
-
codecList:String 类型 | 必选 | 启用的解码配置项。
-
示例
{ "codecList":["url","base64"] }
-
-
网站防篡改规则配置(tamperproof)对应的 JSON 字符串中包含以下参数:
-
uri:String 类型 | 必选 | 所需防护的具体 URL。
-
name:String 类型 | 必选 | 规则名称。
-
status:Integer 类型 | 可选 | 规则的防护状态:
- 0(默认):表示不生效。
- 1:表示生效。
-
示例
{ "name":"example", "uri":"http://www.example.com/example", "status":1 }
-
-
防敏感信息泄露规则配置(dlp)对应的 JSON 字符串中包含以下参数:
-
name:String 类型 | 必选 | 规则名称。
-
conditions:Array 类型 | 必选 | 以 JSON 字符串格式描述匹配条件,支持设置最多两条匹配条件且条件间的关系为并且。其中包含以下具体参数:
- key:匹配项。
- 0:表示防护的 URL。
- 10:表示敏感信息。
- 11:表示响应码。
- operation:匹配逻辑,取值固定为 1,表示包含。
- value:以 JSON 字符串描述匹配条件值,支持设置多个条件值。其中包含以下具体参数:
- v:仅适用于匹配项(key)为 URL(0)或响应码(11)的场景。
- URL:当
"key":0
时,参数值为 URL 地址。 - 响应码:当
"key":11
,参数取值包括 400、401、402、403、404、405-499、500、501、502、503、504、505-599。
- URL:当
- k:仅适用于匹配项(key)为敏感信息(10)的场景,取值:
- 100:表示身份证。
- 101:表示信用卡。
- 102:表示电话号码。
- 103:表示默认敏感词。
- v:仅适用于匹配项(key)为 URL(0)或响应码(11)的场景。
- key:匹配项。
-
action:匹配动作。
- 3:表示告警。
- 10:表示敏感信息过滤,该动作仅适用于包含敏感信息(
"key":10
)的匹配条件场景。 - 11:表示返回系统内置拦截页面,该动作仅适用于包含响应码(
"key":11
)的匹配条件场景。
-
示例
{ "name":"example", "conditions":[{"key":11,"operation":1,"value":[{"v":401}]},{"key":"0","operation":1,"value":[{"v":"www.example.com"}]}], "action":3 }
-
-
账户安全规则配置(ng_account)对应的 JSON 字符串中包含以下参数:
-
domain:String 类型 | 必选 | 防护的域名。
-
method:String 类型 | 必选 | 检测的请求方式,包括 POST、GET、PUT、DELETE。支持设定多个请求方式,以英文逗号“,”分隔。
-
url_path:String 类型 | 必选 | 检测接口,以 URL 路径表示,必须以正斜杠(/)开头。
-
account_left:String 类型 | 必选 | 账号参数名。
-
password_left:String 类型 | 可选 | 密码参数名。
-
action:String 类型 | 必选 | 防护动作,取值:
- monitor:表示预警。
- block:表示拦截。
-
示例
{ "domain":"www.example.com", "method":"GET,POST", "url_path":"/example", "account_left":"aaa", "action":"monitor" }
-
-
合法爬虫规则配置(bot_crawler)对应的 JSON 字符串中包含以下参数:
-
Status:Integer 类型 | 必选 | 是否启用,取值:
- 0:表示禁用。
- 1:表示启用。
-
Version:Integer 类型 | 必选 | 规则版本号。
-
Content:String 类型 | 必选 | 规则详细信息,以 JSON 字符串格式进行描述,具体包含以下参数:
- name:String 类型 | 必选 | 规则名称。
- conditions:Array 类型 | 可选 | 防护路径条件。在合法爬虫规则配置中固定为空,表示全路径。
- expressions:Array 类型 | 必选 | 规则条件表达式,以更易读的方式表示所有规则条件信息。
- bypassTags:String 类型 | 必选 | 不检测的模块。在合法爬虫规则配置中固定为 antibot,表示 Bot 管理模块。
- tags:Array 类型 | 必选 | 规则所属防护功能模块。在合法爬虫规则配置中固定为
["antibot"]
,表示 Bot 管理模块。
-
RuleId:Integer 类型 | 必选 | 规则 ID。
-
Time:String 类型 | 必选 | 规则最新修改时间,以秒级时间戳格式表示。
-
示例
{ "Status":0, "Version":1, "Content":{ "name":"百度蜘蛛白名单", "conditions":[], "expressions":["remote_addr inl 'ioc.210d077a-cf34-49ad-a9b3-0aa48095c595' && uri =^ '/'"], "bypassTags":"antibot", "tags":["antibot"] }, "RuleId":20384, "Time":1585818161 }
-
-
爬虫威胁情报规则配置(bot_intelligence)对应的 JSON 字符串中包含以下参数:
-
Status:Integer 类型 | 必选 | 是否启用,取值:
- 0:表示禁用。
- 1:表示启用。
-
Version:Integer 类型 | 必选 | 规则版本号。
-
Content:String 类型 | 必选 | 规则详细信息,以 JSON 字符串格式进行描述,具体包含以下参数:
- name:String 类型 | 必选 | 规则名称。
- action:String 类型 | 必选 | 处置动作,取值:
- monitor:表示观察。
- captcha:表示滑块。
- captcha_strict:表示严格滑块。
- js:表示 JavaScript 校验。
- block:表示阻断。
- urlList:Array 类型 | 必选 | 防护路径,最多指定十个防护路径。以 JSON 字符串方式表示,具体包含以下参数:
- mode:String 类型 | 必选 | 匹配方式,与路径关键字(url)参数结合指定防护路径。可选值:eq(精准匹配)、prefix-match(前缀匹配)、regex(正则匹配)。
- url:String 类型 | 必选 | 路径关键字,必须以正斜杠(/)开头。
- keyType:String 类型 | 必选 | 情报库类型,包含 IP 库(ip)、指纹库(ua)两种类型。
-
RuleId:Integer 类型 | 必选 | 规则 ID。
-
Time:String 类型 | 必选 | 规则最新修改时间,以秒级时间戳格式表示。
-
示例
{ "Status":1, "Version":1, "Content":{ "name":"IDC IP 库-腾讯云", "action":"captcha_strict", "urlList":[{"mode":"prefix-match","url":"/indexa"}, {"mode":"regex","url":"/"},{"mode":"eq","url":"/"}], "keyType":"ip" }, "RuleId":922777, "Time":1585907112 }
-
-
数据风控防护请求规则配置(antifraud)对应的 JSON 字符串中包含以下参数:
-
uri:String 类型 | 必选 | 具体的防护请求 URL。
-
示例
{ "uri": "http://1.example.com/example" }
-
-
数据风控 JS 插入页面配置(antifraud_js)对应的 JSON 字符串中包含以下参数:
-
uri:String 类型 | 必选 | 需要插入数据风控 JS 页面的 URL,系统将为所指定的 URL 路径下的所有页面插入数据风控 JS。
-
示例
{ "uri": "/example/example" }
-
-
智能算法规则配置(bot_algorithm)对应的 JSON 字符串中包含以下参数:
-
Status:Integer 类型 | 必选 | 是否启用,取值:
- 0:表示禁用。
- 1:表示启用。
-
Version:Integer 类型 | 必选 | 规则版本号。
-
Content:String 类型 | 必选 | 规则详细信息,以 JSON 字符串格式进行描述,具体包含以下参数:
- name:String 类型 | 必选 | 规则名称。
- timeInterval:Integer 类型 | 必选 | 检测周期,可选值:30、60、120、300、600,单位秒。
- action:String 类型 | 必选 | 处置动作,取值:
- monitor:表示观察。
- captcha:表示滑块。
- js:表示 JavaScript 校验。
- block:表示阻断。选择阻断作为处置动作时,必须设置阻断时长(blocktime)参数。
- blocktime:Integer 类型 | 可选 | 阻断时长,单位分钟,取值范围:1~600。
- algorithmName:String 类型 | 必选 | 算法名称,取值:
- RR:表示专项资源爬虫识别算法。
- PR:表示定向路径爬虫识别算法。
- DPR: 表示参数轮询爬虫识别算法。
- SR:表示动态 IP 爬虫识别算法。
- IND:表示代理设备爬虫识别算法。
- Periodicity:表示周期性爬虫识别算法。
- config:String 类型 | 必选 | 算法配置信息,以 JSON 字符串格式表示。算法配置信息中的具体子参数与所选择的算法名称(algorithmName)相关。
- 专项资源爬虫识别算法(RR)对应的配置信息应包含以下子参数:
- resourceType:Integer 类型 | 可选 | 请求的资源类型,取值:
- 1:表示动态资源类型。
- 2:表示静态资源类型。
- -1:表示自定义资源类型。选择自定义资源组时,需要再设置 extensions 参数,以字符串格式指定具体的资源后缀名,多个后缀名间以英文逗号“,”分隔,例如
css,jpg,xls
。
- minRequestCountPerIp:Integer 类型 | 必选 | 检测周期中检测 IP 的范围,大于等于一定访问请求数量的 IP 才会被检测。通过该参数指定访问请求数量的最小值,取值范围:5~10000。
- minRatio:Float 类型 | 必选 | 风险判定条件,即 IP 访问请求中访问指定资源类型的占比阈值,超过阈值后判定为风险,取值范围:0.01~1。
- resourceType:Integer 类型 | 可选 | 请求的资源类型,取值:
- 定向路径爬虫识别算法(PR)对应的配置信息应包含以下子参数:
- keyPathConfiguration:Array 类型 | 可选 | 请求的路径信息,支持指定最多 10 条路径,只在使用定向路径爬虫识别算法时需设置该子参数。以 JSON 字符串格式表示,具体包含以下参数:
- method:String 类型 | 必选 | 请求方法,可选值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url:String 类型 | 必选 | 请求路径关键字,必须以正斜杠(/)开头。
- matchType:String 类型 | 必选 | 匹配方式,与请求路径关键字(url)参数结合指定请求路径。可选值:all(精准匹配)、prefix(前缀匹配)、regex(正则匹配)。
- minRequestCountPerIp:Integer 类型 | 必选 | 检测周期中检测 IP 的范围,大于等于一定访问请求数量的 IP 才会被检测。通过该参数指定访问请求数量的最小值,取值范围:5~10000。
- minRatio:Float 类型 | 必选 | 风险判定条件,即 IP 访问请求中访问指定路径的占比阈值(对应定向路径爬虫识别算法),超过阈值后判定为风险,取值范围:0.01~1。
- keyPathConfiguration:Array 类型 | 可选 | 请求的路径信息,支持指定最多 10 条路径,只在使用定向路径爬虫识别算法时需设置该子参数。以 JSON 字符串格式表示,具体包含以下参数:
- 参数轮询爬虫识别算法(DPR)对应的配置信息应包含以下子参数:
- method:String 类型 | 必选 | 请求方法,可选值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- urlPattern:String 类型 | 必选 | 关键参数路径,必须以正斜杠(/)开头。用{}表示关键参数,配置多个{}时将拼接这些参数作为关键参数。例如,
/company/{}/{}/{}/user.php?uid={}
。 - minRequestCountPerIp:Integer 类型 | 必选 | 检测周期中检测 IP 的范围,大于等于一定访问请求数量的 IP 才会被检测。通过该参数指定访问请求数量的最小值,取值范围:5~10000。
- minRatio:Float 类型 | 必选 | 风险判定条件,即 IP 访问请求中不同关键参数值的计数占比阈值,超过阈值后判定为风险,取值范围:0.01~1。
- 动态 IP 爬虫识别算法(SR)对应的配置信息应包含以下子参数:
- maxRequestCountPerSrSession:Integer 类型 | 必选 | 通过设定每个会话中存在的最小请求次数定义异常会话,即单个会话中的请求次数小于该值即判定为异常会话。取值范围:1~8。
- minSrSessionCountPerIp:Integer 类型 | 必选 | 风险判定条件,即 IP 访问请求中存在的异常会话数量阈值,单个 IP 访问请求中的异常会话次数超过该值后判定为风险。取值范围:5~300。
- 代理设备爬虫识别算法(IND)对应的配置信息应包含以下子参数:
- minIpCount:Integer 类型 | 必选 | 恶意设备判定条件,即设备使用 WIFI 关联的 IP 变换个数阈值,超过该阈值后判定为风险,取值范围:5~500。
- keyPathConfiguration:Array 类型 | 可选 | 检测路径信息,支持指定最多 10 条路径。以 JSON 字符串格式表示,具体包含以下参数:
- method:String 类型 | 必选 | 请求方法,可选值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url:String 类型 | 必选 | 检测路径关键字,必须以正斜杠(/)开头。
- matchType:String 类型 | 必选 | 匹配方式,与检测路径关键字(url)参数结合指定请求路径。可选值:all(精准匹配)、prefix(前缀匹配)、regex(正则匹配)。
- 周期性爬虫识别算法(Periodicity)对应的配置信息应包含以下子参数:
- minRequestCountPerIp:Integer 类型 | 必选 | 检测周期中检测 IP 的范围,大于等于一定访问请求数量的 IP 才会被检测。通过该参数指定访问请求数量的最小值,取值范围:5~10000。
- level:Integer 类型 | 必选 | 风险判定等级,即访问 IP 的周期性特征的明显程度,取值:
- 0:表示明显。
- 1:表示中等。
- 2:表示较弱。
- 专项资源爬虫识别算法(RR)对应的配置信息应包含以下子参数:
-
RuleId:Integer 类型 | 必选 | 规则 ID。
-
Time:String 类型 | 必选 | 规则最新修改时间,以秒级时间戳格式表示。
-
示例
{ "Status":1, "Version":1, "Content":{ "name":"动态 IP", "timeInterval":60, "action":"warn", "algorithmName":"IND", "config":{"minIpCount":5,"keyPathConfiguration":[{"method":"GET","matchType":"prefix","url":"/index"}]} }, "RuleId":940180, "Time":1585832957 }
-
-
App 防护的版本防护规则配置(bot_wxbb_pkg)对应的 JSON 字符串中包含以下参数:
-
Version:Integer 类型 | 必选 | 规则版本号。
-
Content:String 类型 | 必选 | 规则详细信息,以 JSON 字符串格式进行描述,具体包含以下参数:
- name:String 类型 | 必选 | 规则名称。
- action:String 类型 | 必选 | 处置动作,取值:
- test:表示观察。
- close:表示阻断。
- nameList:Array 类型 | 必选 | 合法版本信息,最多指定五条规则。以 JSON 字符串方式表示,具体包含以下参数:
- name:String 类型 | 必选 | 合法包名称。
- signList:Array 类型 | 必选 | 对应的包签名,最多包含 15 个,以半角逗号(,)分隔。
-
RuleId:Integer 类型 | 必选 | 规则 ID。
-
Time:String 类型 | 必选 | 规则最新修改时间,以秒级时间戳格式表示。
-
示例
{ "Version":0, "Content":{ "nameList":[{"signList":["xxxxxx","xxxxx","xxxx","xx"],"name":"apk-xxxx"}], "name":"test", "action":"close" }, "RuleId":271, "Time":1585836143 }
-
-
App 防护的路径防护规则配置(bot_wxbb)对应的 JSON 字符串中包含以下参数:
-
Version:Integer 类型 | 必选 | 规则版本号。
-
Content:String 类型 | 必选 | 规则详细信息,以 JSON 字符串格式进行描述,具体包含以下参数:
- name:String 类型 | 必选 | 规则名称。
- uri:String 类型 | 必选 | 防护路径,必须以正斜杠(/)开头。
- matchType:String 类型 | 必选 | 匹配方式。可选值:all(精准匹配)、prefix(前缀匹配)、regex(正则匹配)。
- arg:String 类型 | 必选 | 参数包含,与匹配方式(matchType)参数结合指定防护路径配置。
- action:String 类型 | 必选 | 处置动作,取值:
- test:表示观察。
- close:表示阻断。
- wxbbVmpFieldType:Integer 类型 | 可选 | 自定义加签字段类型。如果规则中未设置自定义加签字段,则不返回该参数。取值:
- 0:表示 header。
- 1:表示参数。
- 2:表示 cookie。
- wxbbVmpFieldValue:String 类型 | 可选 | 自定义加签字段值。如果规则中未设置自定义加签字段,则不返回该参数。
- blockInvalidSign:Boolean 类型 | 必选 | 是否对非法签名执行处置动作。
- blockProxy:Boolean 类型 | 必选 | 是否对代理执行处置动作。
- blockSimulator:Boolean 类型 | 必选 | 是否对模拟器执行处置动作。
-
RuleId:Integer 类型 | 必选 | 规则 ID。
-
Time:String 类型 | 必选 | 规则最新修改时间,以秒级时间戳格式表示。
-
示例
{ "Version":6, "Content":{ "blockInvalidSign":true, "wxbbVmpFieldValue":"test", "blockSimulator":true, "matchType":"all", "arg":"test", "name":"test", "action":"close", "blockProxy":true, "uri":"/index", "wxbbVmpFieldType":1 }, "RuleId":2585, "Time":1586241849 }
-
-
IP 黑名单规则配置(ac_blacklist)对应的 JSON 字符串中包含以下参数:
-
empty:Boolean 类型 | 必选 | 黑名单是否为空。
-
remoteAddr:Array 类型 | 必选 | 黑名单中的 IP。
-
area:String 类型 | 必选 | 以 JSON 格式字符串表示区域封禁规则,包含国家编码(countryCodes)、区域编码(regionCodes)、是否放行(not)具体参数。由于 API 接口中以编码形式返回封禁国家和区域,建议您在控制台中查看具体的封禁国家和区域。
-
示例
{ "empty":false, "remoteAddr":["1.XX.XX.1","12.XX.XX.2"] }
-
-
高频 Web 攻击 IP 自动封禁规则配置(ac_highfreq)对应的 JSON 字符串中包含以下参数:
-
interval:Integer 类型 | 必选 | 检测时间范围,单位秒,取值范围:5~1800。
-
ttl:Integer 类型 | 必选 | 封禁 IP 时长,单位秒,取值范围:60~86400。
-
count:Integer 类型 | 必选 | Web 攻击次数阈值,检测时间范围内攻击次数超过该值,触发封禁。取值范围:2~50000。
-
示例
{ "interval":60, "ttl":300, "count":60 }
-
-
目录扫描防护规则配置(ac_dirscan)对应的 JSON 字符串中包含以下参数:
-
interval:Integer 类型 | 必选 | 检测时间范围,单位秒,取值范围:5~1800。
-
ttl:Integer 类型 | 必选 | 封禁 IP 时长,单位秒。
-
count:Integer 类型 | 必选 | 访问次数阈值,取值范围:2~50000。
-
weight:Float 类型 | 必选 | 404 响应码占比阈值(百分比),取值范围:
(0,1]
。 -
uriNum:Integer 类型 | 必选 | 扫描目录数量阈值,取值范围:2~50000。
-
示例
{ "interval":10, "ttl":1800, "count":50, "weight":0.7, "uriNum":20 }
-
-
自定义防护策略规则配置(ac_custom),通过其对应 JSON 字符串中的 scene 参数来设置 ACL 访问控制规则和 CC 攻击防护规则。
-
自定义 ACL 访问控制规则(scene 参数值为custom_acl)对应的 JSON 字符串中包含以下参数:
-
name:String 类型 | 必选 | 规则名称。
-
scene:String 类型 | 必选 | 防护类型。设置 ACL 访问控制规则时,取值固定为custom_acl。
-
action:String 类型 | 必选 | 处置动作,取值:
- monitor:表示观察。
- captcha:表示滑块。
- captcha_strict:表示严格滑块。
- js:表示 JS 验证。
- block:表示阻断。
-
conditions:Array 类型 | 必选 | 匹配条件,以 JSON 字符串格式进行描述,具体包含以下参数:
-
key:匹配字段,取值:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
-
opCode:逻辑符,取值:
- 11:表示等于。
- 10:表示不等于。
- 41:表示等于多值之一。
- 50:表示不等于任一值。
- 1:表示包含。
- 0:表示不包含。
- 51:表示包含多值之一。
- 52:表示不包含任一值。
- 82:表示存在。
- 2:表示不存在。
- 21:表示长度等于。
- 22:表示长度大于。
- 20:表示长度小于。
- 60:表示正则不匹配。
- 61:表示正则匹配。
- 72:表示前缀匹配。
- 81:表示后缀匹配。
- 80:表示内容为空。
-
values:匹配内容。根据需要设置相应的内容,以 String 类型表示。
-
contain:同样表示规则条件的逻辑符,取值与 opCode 参数相同。
-
opValue:逻辑符的简写含义,您可以参考 opCode 参数取值说明了解详细信息。
-
pattern:同样表示逻辑符的简写含义,取值与 opValue 参数相同。
-
-
expressions:Array 类型 | 必选 | 规则条件表达式,以更易读的方式表示所有规则条件信息。
-
示例
{ "name":"test2", "action":"monitor", "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}], "expressions":["request_uri contains 'login' "], "scene":"custom_acl" }
-
-
自定义 CC 攻击防护规则(scene 参数值为custom_cc)对应的 JSON 字符串中包含以下参数:
-
name:String 类型 | 必选 | 规则名称。
-
scene:String 类型 | 必选 | 防护类型。设置 CC 攻击防护规则时,取值固定为custom_cc。
-
conditions:Array 类型 | 必选 | 匹配条件,以 JSON 字符串格式进行描述,具体包含以下参数:
- key:匹配字段,取值:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
- opCode:逻辑符,取值:
- 11:表示等于。
- 10:表示不等于。
- 41:表示等于多值之一。
- 50:表示不等于任一值。
- 1:表示包含。
- 0:表示不包含。
- 51:表示包含多值之一。
- 52:表示不包含任一值。
- 82:表示存在。
- 2:表示不存在。
- 21:表示长度等于。
- 22:表示长度大于。
- 20:表示长度小于。
- 60:表示正则不匹配。
- 61:表示正则匹配。
- 72:表示前缀匹配。
- 81:表示后缀匹配。
- 80:表示内容为空。
- values:匹配内容。根据需要设置相应的内容,以 String 类型表示。
- contain:同样表示规则条件的逻辑符,取值与 opCode 参数相同。
- opValue:逻辑符的简写含义,您可以参考 opCode 参数取值说明了解详细信息。
- pattern:同样表示逻辑符的简写含义,取值与 opValue 参数相同。
-
expressions:Array 类型 | 必选 | 规则条件表达式,以更易读的方式表示所有规则条件信息。
-
action:String 类型 | 必选 | 处置动作,取值:
- monitor:表示观察。
- captcha:表示滑块。
- captcha_strict:表示严格滑块。
- js:表示 JS 验证。
- block:表示阻断。
-
ratelimit:JSON 格式 | 必选 | 频率设置。以 JSON 字符串格式进行描述,具体包含以下参数:
- target:String 类型 | 必选 | 统计对象类型,取值:
- remote_addr:表示 IP。
- cookie.acw_tc:表示 Session。
- queryarg:表示自定义参数。选择自定义参数时,必须在 subkey 参数中设置需要统计的自定义参数名称。
- cookie:表示自定义 cookie。选择自定义 cookie 时,您必须在 subkey 参数中设置需要统计的 cookie 内容。
- header:表示自定义 header。选择自定义 header 时,您必须在 subkey 参数中设置需要统计的 header 内容。
- subkey:String 类型 | 可选 | 当 target 参数值为 cookie、header 或 queryarg 时,您必须在 subkey 参数中设置对应的信息。
- interval: Integer 类型 | 必选 | 统计时长(单位:秒),即访问次数的统计周期,与阈值(threshold)参数配合。
- threshold:Integer 类型 | 必选 | 在检测时长内,允许单个统计对象访问被防护地址的次数阈值。
- status:JSON 格式 | 可选 | 响应码频率设置。以 JSON 字符串格式进行描述,具体包含以下参数:
- code:Integer 类型 | 必选 | 指定响应码。
- count:Integer 类型 | 可选 | 出现次数阈值,即表示当指定的响应码出现次数超过该阈值时命中防护规则,取值范围:1~999999999。count 参数与 ratio 参数两者选其一,不可同时配置。
- ratio:Integer 类型 | 可选 | 出现比例阈值(百分比),即表示当指定的响应码出现比例超过该阈值时命中防护规则,取值范围:1~100。count 参数与 ratio 参数两者选其一,不可同时配置。
- scope:String 类型 | 必选 | 生效范围,取值:
- rule:表示当前特征匹配范围内。
- domain:表示当前规则作用的域名范围内。
- ttl:Integer 类型 | 必选 | 处置动作的生效时长,单位:秒,取值范围:60~86400。
- target:String 类型 | 必选 | 统计对象类型,取值:
-
示例
{ "name":"CC 防护", "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}], "expressions":["request_uri contains 'login' "], "action":"block", "scene":"custom_cc", "ratelimit":{ "target": "remote_addr", "interval": 300, "threshold": 2000, "status": { "code": 404, "count": 200 }, "scope": "rule", "ttl": 1800 } }
-
-
-
白名单规则配置(whitelist)对应的 JSON 字符串中包含以下参数:
-
name:String 类型 | 必选 | 规则名称。
-
tags:Array 类型 | 必选 | 不检测模块,可设置多个模块,取值:
- waf:表示网站白名单。
- cc:表示系统 CC 防护。
- customrule:表示自定义规则。
- blacklist:表示 IP 黑名单。
- antiscan:表示扫描防护。
- regular:表示规则防护引擎。
- deeplearning:表示深度学习引擎。
- antifraud:表示数据风控。
- dlp:表示防敏感信息泄露。
- tamperproof:表示网站防篡改。
- bot_intelligence:表示爬虫威胁情报。
- bot_algorithm:表示智能算法。
- bot_wxbb:表示 App 防护。
-
bypassTags:String 类型 | 必选 | 不检测的模块列表。
-
origin:String 类型 | 可选 | 白名单规则的来源。取值固定为 ai,表示白名单规则由 WAF 智能规则托管功能自动添加。不返回该参数表示白名单规则包括您手动添加的规则和智能规则托管功能自动添加的规则。
-
conditions:Array 类型 | 必选 | 匹配条件,以 JSON 字符串格式进行描述,具体包含以下参数:
-
key:匹配字段,取值:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
-
opCode:逻辑符,取值:
- 11:表示等于。
- 10:表示不等于。
- 41:表示等于多值之一。
- 50:表示不等于任一值。
- 1:表示包含。
- 0:表示不包含。
- 51:表示包含多值之一。
- 52:表示不包含任一值。
- 82:表示存在。
- 2:表示不存在。
- 21:表示长度等于。
- 22:表示长度大于。
- 20:表示长度小于。
- 60:表示正则不匹配。
- 61:表示正则匹配。
- 72:表示前缀匹配。
- 81:表示后缀匹配。
- 80:表示内容为空。
-
values:匹配内容。根据需要设置相应的内容,以 String 类型表示。
-
contain:同样表示规则条件的逻辑符,取值与 opCode 参数相同。
-
opValue:逻辑符的简写含义,您可以参考 opCode 参数取值说明了解详细信息。
-
pattern:同样表示逻辑符的简写含义,取值与 opValue 参数相同。
-
-
expressions:Array 类型 | 必选 | 规则条件表达式,以更易读的方式表示所有规则条件信息。
-
示例
{ "name": "test", "tags": ["cc","customrule"], "bypassTags":"antifraud,dlp,tamperproof", "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}], "expressions":["request_uri contains 'login' "] }
-
示例
正常返回示例
JSON
格式
{
"TotalCount": 1,
"RequestId": "D7861F61-5B61-46CE-A47C-6B19160D5EB0",
"Rules": [
{
"Status": 1,
"Time": 1570700044,
"Content": {
"count": 60,
"interval": 60,
"ttl": 300
},
"Version": 2,
"RuleId": 42755
}
]
}
错误码
访问错误中心查看更多错误码。