Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Firewall de Aplicativo Web do Azure no Azure Front Door permite que você controle o acesso aos seus aplicativos Web com base nas condições definidas. Uma regra WAF (firewall de aplicativo Web) personalizada consiste em um número de prioridade, tipo de regra, condições de correspondência e uma ação.
Existem dois tipos de regras personalizadas: regras de correspondência e regras de limite de taxa. Uma regra de correspondência controla o acesso com base em um conjunto de condições de correspondência. Uma regra de limite de taxa controla o acesso com base nas condições correspondentes e nas taxas de solicitações recebidas. Você pode desabilitar uma regra personalizada para impedir que ela seja avaliada, mas ainda assim manter a configuração.
Para obter mais informações sobre limitação de taxa, consulte O que é limitação de taxa para o Azure Front Door?.
Prioridade, tipos de ação e condições de correspondência
Você pode controlar o acesso com uma regra WAF personalizada que define um número de prioridade, um tipo de regra, uma matriz de condições de correspondência e uma ação.
Prioridade
Um inteiro exclusivo que descreve a ordem de avaliação das regras WAF. As regras com valores de prioridade mais baixa são avaliadas antes das regras com valores mais elevados. A avaliação da regra para em todas as ações da regra, exceto em Log. Os números de prioridade devem ser únicos em todas as regras personalizadas.
Ação
Define como rotear uma solicitação se uma regra WAF for correspondida. Você pode escolher uma das seguintes ações para aplicar quando uma solicitação corresponder a uma regra personalizada.
- Permitir: o WAF permite que a solicitação seja processada, registra uma entrada nos logs do WAF e sai.
- Bloqueio: A solicitação está bloqueada. O WAF envia uma resposta a um cliente sem encaminhar mais a solicitação. O WAF regista uma entrada nos logs do WAF e termina o processo.
- Log: O WAF registra uma entrada nos logs do WAF e continua a avaliar a próxima regra na ordem de prioridade.
- Redirecionamento: o WAF redireciona a solicitação para um URI especificado, registra uma entrada nos logs do WAF e sai.
Condição de combinação
Define uma variável de correspondência, um operador e um valor de correspondência. Cada regra pode conter várias condições de correspondência. Uma condição de correspondência pode ser baseada em localização geográfica, endereços IP do cliente (CIDR), tamanho ou correspondência de cadeia de caracteres. A correspondência de cadeia de caracteres pode ser contra uma lista de variáveis de correspondência.
Variável de correspondência
- Método de Solicitação
- QueryString
- PostArgs
- SolicitaçãoURI
- Cabeçalho de Pedido
- RequestBody
- Biscoitos
Operador
- Qualquer: geralmente usado para definir a ação padrão quando nenhuma regra é satisfeita. Qualquer é um operador de correspondência total.
- Igual
- Contém
- LessThan: Restrição de tamanho
- GreaterThan: Restrição de tamanho
- LessThanOrEqual: Restrição de tamanho
- GreaterThanOrEqual: Restrição de tamanho
- ComeçaCom
- TerminaCom
- Regex
Regex
Não suporta as seguintes operações:
- Referências cruzadas e captura de subexpressões
- Asserções arbitrárias de largura nula
- Referências subrotineiras e padrões recursivos
- Padrões condicionais
- Verbos de controle de retrocesso
- A diretiva de byte único \C
- A diretiva de correspondência de nova linha \R
- A diretiva de redefinição do início da correspondência \K
- Textos explicativos e código incorporado
- Agrupamento atómico e quantificadores possessivos
Negate [opcional]
Você pode definir a
negatecondição como true se o resultado de uma condição deve ser negado.Transformar [opcional]
Uma lista de cadeias de caracteres com nomes de transformações a serem feitas antes da tentativa de correspondência. Estas podem ser as seguintes transformações:
- Maiúsculas
- Minúsculas
- Aparar
- RemoveNulls
- Decodificação de URL
- Codificação de URL
Valor correspondente
Os valores do método de solicitação HTTP suportados incluem:
- Obtém
- Publicação
- INSERIR
- CABEÇA
- SUPRIMIR
- BLOQUEIO
- DESBLOQUEAR
- PERFIL
- OPÇÕES
- PROPFIND
- PROPPATCH
- MKCOL
- CÓPIA
- MUDANÇA
- CORREÇÃO
- CONECTE-SE
Exemplos
Considere os exemplos a seguir.
Corresponder com base em parâmetros de solicitação HTTP
Suponha que você precise configurar uma regra personalizada para permitir solicitações que correspondam às duas condições a seguir:
- O
Referervalor do cabeçalho é igual a um valor conhecido. - A cadeia de caracteres de consulta não contém a palavra
password.
Aqui está um exemplo de descrição JSON da regra personalizada:
{
"name": "AllowFromTrustedSites",
"priority": 1,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestHeader",
"selector": "Referer",
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"www.mytrustedsites.com/referpage.html"
]
},
{
"matchVariable": "QueryString",
"operator": "Contains",
"matchValue": [
"password"
],
"negateCondition": true
}
],
"action": "Allow"
}
Bloquear solicitações HTTP PUT
Suponha que você precise bloquear qualquer solicitação que use o método HTTP PUT.
Aqui está um exemplo de descrição JSON da regra personalizada:
{
"name": "BlockPUT",
"priority": 2,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestMethod",
"selector": null,
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"PUT"
]
}
],
"action": "Block"
}
Restrição de tamanho
Um Azure Front Door WAF permite-lhe criar regras personalizadas que aplicam uma restrição de comprimento ou tamanho a uma parte de uma solicitação recebida. Essa restrição de tamanho é medida em bytes.
Suponha que você precise bloquear solicitações em que o URL tenha mais de 100 caracteres.
Aqui está um exemplo de descrição JSON da regra personalizada:
{
"name": "URLOver100",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "GreaterThanOrEqual",
"negateCondition": false,
"matchValue": [
"100"
]
}
],
"action": "Block"
}
Corresponder com base no URI de solicitação
Suponha que você precise permitir solicitações em que o URI contém 'login'.
Aqui está um exemplo de descrição JSON da regra personalizada:
{
"name": "URIContainsLogin",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "Contains",
"negateCondition": false,
"matchValue": [
"login"
]
}
],
"action": "Allow"
}
Cópia e duplicação de regras personalizadas
As regras personalizadas podem ser duplicadas dentro de uma determinada política. Ao duplicar uma regra, você precisa especificar um nome exclusivo para a regra e um valor de prioridade exclusivo. Além disso, as regras personalizadas podem ser copiadas de uma política WAF do Azure Front Door para outra, desde que as políticas estejam ambas na mesma assinatura. Ao copiar uma regra de uma política para outra, você precisa selecionar a política WAF do Azure Front Door para a qual deseja copiar a regra. Depois de selecionar a política WAF, você precisa dar à regra um nome exclusivo e atribuir uma classificação de prioridade.