A Microsoft agora permite usar desafios CAPTCHA como ação de mitigação em regras personalizadas no Azure Web Application Firewall (WAF) com Azure Front Door.
O que é isso?
O CAPTCHA permite verificar se uma solicitação está vindo de um ser humano e não de um bot, bloqueando tráfego malicioso antes que ele atinja seu backend.
Como funciona?
Você configura uma regra personalizada no WAF, que, ao atender aos critérios (como IP, região, cabeçalhos, etc.), o WAF exibe um desafio CAPTCHA.
O usuário precisa resolver o CAPTCHA para prosseguir.
Vantagens
- Reduz tráfego automatizado e bots maliciosos
- Mitigação de ataques DDoS, força bruta e scraping
- Não bloqueia o tráfego legítimo de forma imediata, apenas verifica
Aplicações comuns
- Proteção de portais de login
- Redução de carga em APIs públicas
- Camada extra de segurança sem impactar experiência do usuário legítimo
Essa funcionalidade oferece segurança proativa com flexibilidade e controle no tráfego HTTP do seu app.
Quer um exemplo de como configurar essa regra via Azure Portal ou ARM template?
Como configurar regra de CAPTCHA no Azure Web Application Firewall (WAF) com Azure Front Door usando o Portal do Azure ou modelo em ARM Template
Via Portal Azure
- Acesse seu recurso Azure Front Door.
- No menu lateral, vá em "Web Application Firewall (WAF)" > "Políticas".
- Crie ou edite uma política WAF personalizada.
- Em "Regras personalizadas", clique em "Adicionar regra".
- Defina os seguintes campos:
Nome: CaptchaRule
Tipo de regra: "Match"
Condições: Ex: IP Address = [IP suspeito]
ou Path = /login
Ação: "Desafio CAPTCHA"
Salve a regra e vincule essa política à sua Front Door.
Exemplo de ARM Template
{
"type": "Microsoft.Network/frontdoorwebapplicationfirewallpolicies",
"apiVersion": "2021-06-01",
"name": "MyWAFPolicy",
"location": "global",
"properties": {
"policySettings": {
"enabledState": "Enabled",
"mode": "Prevention"
},
"customRules": {
"rules": [
{
"name": "CaptchaRule",
"priority": 1,
"ruleType": "MatchRule",
"action": "Challenge",
"matchConditions": [
{
"matchVariable": "RequestUri",
"operator": "Contains",
"matchValues": ["/login"],
"negateCondition": false,
"transforms": []
}
],
"enabledState": "Enabled"
}
]
}
}
}
Comments
Post a Comment