Chama a operação BatchCreateDcdnWafRules para definir regras de mitigação WAF.
Descrição da operação
A frequência de chamadas para esta operação é limitada a 20 chamadas por segundo para cada usuário.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
dcdn:BatchCreateDcdnWafRules |
create |
*All Resource
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| PolicyId |
integer |
Sim |
O ID da política de mitigação. |
1000001 |
| RuleConfigs |
string |
Sim |
As configurações das regras de mitigação. |
[{"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"}] |
Descrição de RuleConfigs
RuleConfigs é um array de objetos. Cada objeto representa uma regra.
O formato de RuleConfigs varia com base no tipo de política de mitigação associado ao PolicyId.
Cenário 1: WAF (waf_group)
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| status | String | Não | on | O status da regra. Valores válidos: on e off. O valor padrão é on. |
| action | String | Sim | block | A ação da regra. Valores válidos: block e monitor. |
| wafGroupIds | String | Não | 1012 | O ID do grupo de regras WAF. O valor padrão é 1012. Separe múltiplos IDs com vírgulas (,). |
Exemplo de configurações de waf_group:
// Uma política WAF suporta apenas uma regra.
[
{
"status": "on",
"action": "block"
}
]
Cenário 2: Regras personalizadas (custom_acl)
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| name | string | Sim | acl_1 | O nome da regra. O nome pode conter letras minúsculas, letras maiúsculas, dígitos (0 a 9) e underscores (_). O nome pode ter até 64 caracteres. |
| status | string | Não | on | Valores válidos: on e off. O valor padrão é on. |
| conditions | Condition | Sim | [ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }] | As condições que acionam a regra. Para mais informações sobre os parâmetros, consulte Tabela 1. Parâmetros de Condition. |
| ccStatus | string | Sim | off | Especifica se a limitação de taxa deve ser ativada. Valores válidos: on e off. |
| rateLimit | RateLimit | Não | { "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800} | A regra de limitação de taxa. Este parâmetro é obrigatório se ccStatus estiver definido como on. Para mais informações sobre os parâmetros, consulte Tabela 2. Parâmetros de RateLimit. |
| effect | string | Não | service | O escopo da lista negra de limitação de taxa. Este parâmetro é obrigatório se ccStatus estiver definido como on. Valores válidos: rule (a regra atual) e service (global). |
| action | string | Sim | deny | A ação da regra. Valores válidos: deny, js (JavaScript Challenge) e monitor. |
Tabela 1. Parâmetros de Condition
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| Key | string | Sim | Query String Parameter | O campo de correspondência. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| subKey | string | Não | action | O subcampo de correspondência. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| opValue | String | Sim | eq | O operador lógico. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| values | String | Não | js | O conteúdo de correspondência. Separe múltiplos valores com vírgulas (,). Para mais informações, consulte DescribeDcdnWafFilterInfo. |
Tabela 2. Parâmetros de RateLimit
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| target | string | Sim | Header | O campo usado para estatísticas de limitação de taxa. Valores válidos: IP (solicitações do mesmo endereço IP), Header (solicitações que contêm um header especificado), Query String Parameter (solicitações que contêm um parâmetro especificado), Cookie Name (solicitações que contêm um cookie especificado) e Session (solicitações da mesma sessão). |
| subKey | string | Não | User-Agent | O subcampo do campo estatístico. Este parâmetro é obrigatório se target estiver definido como Header, Query String Parameter ou Cookie Name. |
| Interval | Integer | Sim | 5 | O período estatístico. Valores válidos: 5 a 1800. Unidade: segundos. |
| threshold | Integer | Sim | 2 | O limite estatístico. Valores válidos: 2 a 50000. Unidade: vezes. |
| ttl | Integer | Sim | 1800 | O período de tempo limite para a lista negra. Valores válidos: 60 a 86400. Unidade: segundos. |
| status | RateLimitStatus | Não | {"code": "404", "ratio": 10} | Estatísticas de código de resposta. Para mais informações sobre os parâmetros, consulte Tabela 3. Parâmetros de RateLimitStatus. |
Tabela 3. Parâmetros de RateLimitStatus
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| code | string | Sim | 404 | O código de status HTTP. |
| ratio | Integer | Não | 10 | A porcentagem de solicitações que acionam a regra. Valores válidos: 1 a 100. Você pode especificar este parâmetro ou count. |
| count | Integer | Não | 10 | O número de solicitações que acionam a regra. Valores válidos: 2 a 50000. Você pode especificar este parâmetro ou ratio. |
Exemplo de configurações de custom_acl:
[
// Controle de acesso
{
"name": "acl_1",
"status": "off",
"conditions":
[
{
"key": "Query String Parameter",
"subKey": "action",
"opValue": "eq",
"values": "js"
}
],
"ccStatus": "off",
"action": "js"
},
// Limitação de taxa
{
"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"
}
]
Cenário 3: Lista de permissões (whitelist)
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| name | string | Sim | on | O nome da regra. O nome pode conter letras minúsculas, letras maiúsculas, dígitos (0 a 9) e underscores (_). O nome pode ter até 64 caracteres. |
| status | string | Não | on | O status da regra. Valores válidos: on (padrão) e off. |
| conditions | Condition | Sim | [{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }] | As condições que acionam a regra. Para mais informações sobre os parâmetros, consulte Tabela 1. Parâmetros de Condition. |
| tags | String | Sim | [ "waf_group", "custom_acl"] | Uma lista de tipos de política de mitigação. |
| regularTypes | String | Não | [ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"] | O tipo da regra de expressão regular. Este parâmetro está disponível se waf_group for especificado para tags. Valores válidos: "sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip" e "other". |
| regularRules | String | Não | [ "100001", "100002", "100003"] | A regra de expressão regular. Este parâmetro está disponível se waf_group for especificado para tags. Você pode especificar este parâmetro ou regularTypes. O valor é uma lista de números de seis dígitos em formato de string. |
Exemplo de configurações de whitelist:
[
// Ignorar todos os cenários
{
"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"
]
},
// Ignorar IDs de regras especificados para waf_group
{
"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"
]
},
{
// Ignorar tipos de regras especificados para 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"
]
},
// Ignorar regras personalizadas
{
"name": "wl_custom_acl",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"custom_acl"
]
},
// Ignorar a lista negra de IPs
{
"name": "wl_ip_blacklist",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"ip_blacklist"
]
},
// Ignorar a lista negra de localização
{
"name": "wl_region_block",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"region_block"
]
}
]
Cenário 4: Lista negra de IPs (ip_blacklist)
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| name | string | Sim | ipblacklist | O nome da regra. O nome pode conter letras minúsculas, letras maiúsculas, dígitos (0 a 9) e underscores (_). O nome pode ter até 64 caracteres. |
| status | string | Não | on | O status da regra. Valores válidos: on e off. O valor padrão é on. |
| remoteAddr | []String | Sim | ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"] | Os endereços IP a filtrar. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| action | string | Sim | deny | A ação da regra. Valores válidos: deny e monitor. |
Exemplo de configurações de ip_blacklist:
[
{
"name": "ipblacklist",
"status": "on",
"remoteAddr": ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"],
"action": "deny"
}
]
Cenário 5: Lista negra de localização (region_block)
| Nome | Tipo | Obrigatório | Exemplo | Descrição |
| status | string | Não | on | O status da regra. Valores válidos: on e off. O valor padrão é on. |
| cnRegionList | string | Não | 110000,TW,MO | As regiões na China continental a bloquear. Separe múltiplas regiões com vírgulas (,). Para mais informações sobre as regiões suportadas, consulte DescribeDcdnWafGeoInfo. |
| otherRegionList | string | Não | JP,GB | As regiões fora da China continental a bloquear. Separe múltiplas regiões com vírgulas (,). Para mais informações sobre as regiões suportadas, consulte DescribeDcdnWafGeoInfo. |
| action | string | Sim | deny | A ação da regra. Valores válidos: deny e monitor. |
Você deve especificar pelo menos um entre cnRegionList e otherRegionList.
Exemplo de configurações de region_block:
[
{
"status": "on",
"cnRegionList": "110000,TW,MO",
"otherRegionList": "JP,GB",
"action": "deny"
}
]
Cenário 6: Gerenciamento de bots (bot)
Modelo de regra
Todas as regras incluem os quatro parâmetros a seguir. Para mais informações sobre os valores válidos, consulte a descrição de cada classificação de regra.
| Parâmetro | Tipo | Obrigatório | Descrição |
| type | String | Sim | O tipo da regra. Para mais informações, consulte a classificação de regra específica. |
| status | String | Sim | O status da regra. Valores válidos: on e off. |
| config | TargetType | Não | As configurações da regra. Para mais informações, consulte a classificação de regra específica. |
| action | String | Não | A ação da regra. Para mais informações, consulte a classificação de regra específica. |
Classificação de regra 1: Tipo de objeto protegido
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | target_type | O tipo da regra. Defina o valor como target_type. |
| status | String | Sim | on | O status da regra. Defina o valor como on. |
| config | TargetType | Não | {"target":"app"} | As configurações da regra. Formato: target: O tipo de objeto protegido. Este parâmetro é obrigatório. Valores válidos: web e app. |
| action | String | Não | empty | A ação da regra. Este parâmetro não é aplicável. Deixe-o vazio. |
Exemplo de configurações de tipo de objeto protegido:
[
{
"type":"target_type",
"status":"on",
"config":{"target":"app"},
"action":""
}
]
Classificação de regra 2: Integração do Web SDK
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | web_sdk | O tipo da regra. Defina o valor como web_sdk. |
| status | String | Sim | on | O status da regra. Defina o valor como on. |
| config | WebSdk | Não | {"mode":"automatic","crossDomain":"example.com"} | As configurações da regra. Formato: mode: O modo de integração do kit de desenvolvimento de software (SDK) web. Este parâmetro é obrigatório. Valores válidos: automatic e manual. crossDomain: O nome de domínio entre domínios para a chamada. Este parâmetro é opcional e entra em vigor apenas se mode estiver definido como automatic. |
| action | String | Não | empty | A ação da regra. Este parâmetro não é aplicável. Deixe-o vazio. |
Exemplo de configurações de integração do Web SDK:
[
{
"type":"web_sdk",
"status":"on",
"config":{"mode":"automatic","crossDomain":"example.com"},
"action":""
}
]
Classificação de regra 3: Recurso do objeto protegido
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | traffic_feature | O tipo da regra. Defina o valor como traffic_feature. |
| status | String | Sim | on | O status da regra. Defina o valor como on. |
| config | TrafficFeature | Sim | {"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]} | As configurações da regra. Para mais informações, consulte condition. |
| action | String | Não | empty | A ação da regra. Este parâmetro não é aplicável. Deixe-o vazio. |
condition (condições de correspondência)
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| key | String | Sim | Header | O campo de correspondência. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| subKey | String | Não | User-Agent | O subcampo de correspondência. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| opValue | String | Sim | contain | O operador. Para mais informações, consulte DescribeDcdnWafFilterInfo. |
| values | String | Não | Chrome | O conteúdo de correspondência. Separe múltiplos valores com vírgulas (,). Para mais informações, consulte DescribeDcdnWafFilterInfo. |
Exemplo de configurações de recurso do objeto protegido:
[
{
"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":""
}
]
Classificação de regra 4: Gerenciamento de bots legítimos
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | intelligence_crawler | O tipo da regra. Defina o valor como intelligence_crawler. |
| status | String | Sim | on | O status da regra. Defina o valor como on. |
| config | IntelligenceCrawler | Não | {"name":"intelligence_crawler_baidu"} | As configurações da regra. Para mais informações, consulte name (lista de permissões de spiders de mecanismos de busca). |
| action | String | Sim | bypass | A ação da regra. Defina o valor como bypass. |
name (lista de permissões de spiders de mecanismos de busca)
| Valor do parâmetro | Significado |
| intelligence_crawler_all | Lista de permissões de mecanismos de busca legítimos (Google, Bing, Baidu, Sogou, 360 e Yandex) |
| intelligence_crawler_baidu | Lista de permissões de spider do Baidu |
| intelligence_crawler_sogou | Lista de permissões de spider do Sogou |
| intelligence_crawler_360 | Lista de permissões de spider do 360 |
| intelligence_crawler_google | Lista de permissões de spider do Google |
| intelligence_crawler_bing | Lista de permissões de spider do Bing |
| intelligence_crawler_yandex | Lista de permissões de spider do Yandex |
Exemplo de configurações de gerenciamento de bots legítimos:
[
{
"type":"intelligence_crawler",
"status":"on",
"config":{"name":"intelligence_crawler_baidu"},
"action":"bypass"
},
{
"type":"intelligence_crawler",
"status":"on",
"config":{"name":"intelligence_crawler_google"},
"action":"bypass"
}
]
Classificação de regra 5: Filtragem de scripts simples (JavaScript Challenge)
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | js | O tipo da regra. Defina o valor como js. |
| status | String | Sim | on | O status da regra. Valores válidos: on e off. |
| config | Js | Não | empty | As configurações da regra. Este parâmetro não é aplicável. Deixe-o vazio. |
| action | String | Sim | js | A ação da regra. Defina o valor como js (JavaScript Challenge). |
Exemplo de configurações de filtragem de scripts simples (JavaScript Challenge):
[
{
"type":"js",
"status":"on",
"config":{},
"action":"js"
}
]
Classificação de regra 6: Defesa avançada contra bots (desafio de token dinâmico)
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| type | String | Sim | sigchl | O tipo da regra. Defina o valor como sigchl. |
| status | String | Sim | on | O status da regra. Valores válidos: on e off. |
| config | Sigchl | Não | {"sigchl":["sig","replay","driver"]} | As configurações da regra. Formato: sigchl: A verificação de assinatura de dados da solicitação. Este parâmetro é obrigatório. Valores válidos: sig (assinatura anormal), replay (timestamp anormal) e driver (ataque WebDriver). |
| action | String | Sim | sigchl | A ação da regra. Defina o valor como sigchl (bloquear). |
Exemplo de configurações de defesa avançada contra bots (desafio de token dinâmico):
[
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| RequestId |
string |
O ID da solicitação. |
CB1A380B-09F0-41BB-280B-72F8FD6DA2FE |
| RuleIds |
object |
||
| RuleId |
array |
The IDs of created rules. |
|
|
string |
Os IDs das regras criadas. |
100001,200002 |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "CB1A380B-09F0-41BB-280B-72F8FD6DA2FE",
"RuleIds": {
"RuleId": [
"100001,200002"
]
}
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is invalid. | A parameter is set to an invalid value. |
| 400 | Policy.NotExist | The specified policy does not exist. | The specified protection policy does not exist. |
| 400 | RuleConfigs.Malformed | The specified RuleConfigs format is invalid. | The RuleConfigs parameter is in an invalid format. |
| 400 | RuleName.AlreadyExists | Rule name already exists in specified policy. | The specified rule name is already used by another rule. |
| 400 | Rule.QuantityOverflow | Rules are overflowed quantity in specified policy. | The number of rules in the specified policy has already reached the upper limit. |
| 500 | InternalError | An internal error occurred; please try again later. | An internal error occurred. Try again later. If the error persists, submit a ticket. |
| 403 | %s.NotSupport | The specified resource type %s is not supported. | The specified resource type is not supported. To use this type of resource, contact us. |
| 403 | %s.OverQuota | The quantity of %s exceeds the quota. | The number of resources exceeds the quota. If you want to apply for more resources, contact us. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.