nla自定义规则¶
POST 编辑自定义控制规则 nlaV1:acl:edit¶
POST /prod-api/waf/nlaV1/custom/rules/modifyCustomRule
Body 请求参数
{
"ruleMessage": "deemo",
"status": "enable",
"aclId": 74,
"rules": {
"conditions": [
[
{
"target": "HOST",
"operator": "EQ",
"values": ["test.ruisuyun.com"],
"name": "HOST"
},
{
"target": "REQUEST_URI",
"operator": "ENDS_WITH",
"values": ["js", "png", "jpg"],
"name": "REQUEST_URI"
}
]
],
"action": {
"action": "AUTHENTICATION",
"parameters": [
{ "name": "log", "values": ["log"] },
{ "name": "validType", "values": ["A"] },
{
"name": "signatureParameterName",
"values": ["x-security-auth"]
},
{ "name": "validTime", "values": ["2"] },
{
"name": "authKey",
"values": ["HiUUyUEYMIVvjXFohjpDuej3MP", "Age4YqyEtPQnfcuThgyrDL8GBD"]
}
]
}
},
"customRuleId": 128
}
请求参数¶
| 名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
|---|---|---|---|---|---|
| Authorization | header | string | 是 | 无补充说明 | |
| body | body | ModifyNlaCustomRuleReqVO | 是 | ModifyNlaCustomRuleReqVO | 请求体 JSON,字段说明见上文「Body 请求参数字段说明」。 |
返回示例
200 Response
数据模型¶
ModifyNlaCustomRuleReqVO¶
{
"aclId": 0,
"customRuleId": 0,
"ruleMessage": "string",
"rules": {
"action": {
"action": "string",
"parameters": [
{
"name": "string",
"values": ["string"]
}
]
},
"conditions": [
[
{
"conditionId": 0,
"name": "string",
"operator": "string",
"target": "string",
"values": ["string"]
}
]
]
},
"sort": 0,
"status": "string"
}
ModifyNlaCustomRuleReqVO
属性¶
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| aclId | integer(int64) | 是 | - | 策略组 ID | 规则所属访问控制(ACL)/策略组编号。 |
| customRuleId | integer(int64) | 是 | - | 规则 ID | 被编辑的自定义规则编号。 |
| ruleMessage | string | 是 | - | 规则名称 | 规则对外展示名称或说明。 |
| rules | object | 是 | - | 规则内容 | 含匹配条件 conditions 与命中后动作 action。 |
| status | string | 是 | - | 启用状态 | 如 enable(启用)、disable(关闭)等,以实现为准。 |
Body 请求参数字段说明¶
| 字段名称 | 字段描述 |
|---|---|
ruleMessage |
规则名称或对外展示说明(示例为「鉴权」)。 |
status |
是否启用该规则;示例 enable 表示启用,关闭时常为 disable 等枚举值(以实现与列表接口为准)。 |
aclId |
本规则所属 访问控制(ACL)/策略组 的编号,用于把规则挂到指定策略组下。 |
rules |
规则内容,内含 匹配条件 conditions 与 命中后动作 action。 |
customRuleId |
被编辑的自定义规则 ID;当规则为创建时,不传该参数 |
rules 对象下字段¶
| 字段名称 | 字段描述 |
|---|---|
rules.conditions |
条件组的二维数组:第一层每个元素为一组;组内为多条子条件,组内一般为 与 关系(以实现为准)。 |
rules.action |
命中后执行的动作;包含 action(动作编码)与 parameters(键值参数列表)。 |
rules.conditions[][](组内单条条件)¶
| 字段名称 | 字段描述 |
|---|---|
conditions[][].target |
匹配维度编码,如 HOST、REQUEST_URI,与 describeParameter 中 targets[].target 一致。 |
conditions[][].operator |
比较运算符,如 EQ、ENDS_WITH 等。 |
conditions[][].values |
参与比较的实际取值列表;同一运算符下可多项。 |
conditions[][].name |
维度展示名,常与 target 相同。 |
conditions[][].conditionId |
(更新场景可选)已有条件的持久化 ID;新建条件时可不传,由服务端生成。 |
rules.action 下字段¶
| 字段名称 | 字段描述 |
|---|---|
rules.action.action |
动作类型编码;示例为 AUTHENTICATION(鉴权)。其它取值及参数键说明见《查询自定义控制规则》「动作与参数(客户总览)」;各动作完整 rules.action JSON 见下文「rules.action:各动作完整 JSON 示例」。 |
rules.action.parameters |
动作附加参数数组;每项为 { "name", "values" },解析时以 name 为准,顺序不保证固定。 |
本示例中 rules.action.parameters 各 name 含义¶
name |
字段描述 |
|---|---|
log |
是否记录日志;示例取值 log 表示记录(亦可为 nolog,以实现为准)。 |
validType |
鉴权或校验类型标识;示例为 A。 |
signatureParameterName |
参与签名校验的 HTTP 头或参数名;示例 x-security-auth。 |
validTime |
签名或令牌有效时间相关配置(字符串,单位以实现为准)。 |
authKey |
鉴权密钥列表,可配置多条用于轮换或主备。 |
rules.action:各动作完整 JSON 示例(编辑 modifyCustomRule 请求体)¶
以下与控制台保存自定义规则时常见组装方式一致:各动作均包含 log 项(values 为 log 或 nolog);其余键随动作追加。仅替换请求体中的 rules.action 即可切换动作类型;rules.conditions、根级 ruleMessage 等字段仍须按业务填写。数组顺序以接口实际返回为准。
AUTHENTICATION(鉴权)
{
"action": "AUTHENTICATION",
"parameters": [
{ "name": "log", "values": ["log"] },
{ "name": "validType", "values": ["A"] },
{ "name": "signatureParameterName", "values": ["x-security-auth"] },
{ "name": "validTime", "values": ["2"] },
{
"name": "authKey",
"values": ["HiUUyUEYMIVvjXFohjpDuej3MP", "Age4YqyEtPQnfcuThgyrDL8GBD"]
}
]
}
DENY(拦截)
{
"action": "DENY",
"parameters": [
{ "name": "log", "values": ["log"] },
{ "name": "statusCode", "values": ["418"] }
]
}
LOG(仅记录不拦截)
ALLOW(跳过后续规则)
LIMIT_RATE(频率限速)
{
"action": "LIMIT_RATE",
"parameters": [
{ "name": "log", "values": ["log"] },
{
"name": "traits",
"values": [
"{\"target\":\"COUNTRY_CODE\",\"name\":\"COUNTRY_CODE\",\"value\":\"COUNTRY_CODE\"}"
]
},
{ "name": "limit_access", "values": ["1"] },
{ "name": "limit_time", "values": ["3"] },
{ "name": "behavior", "values": ["excess"] },
{ "name": "limit_blacklist", "values": ["2"] }
]
}
REDIRECT(重定向)
{
"action": "REDIRECT",
"parameters": [
{ "name": "log", "values": ["log"] },
{ "name": "url", "values": ["/example"] },
{ "name": "statusCode", "values": ["301"] }
]
}
CAPTCHA(人机验证) — 无额外结构化参数时仅 log:
DETECTION_ROBOT(验证爬虫) — 同上,仅 log: