Compartilhar via


Desafio javaScript do Firewall de Aplicativo Web do Azure

O WAF (Firewall de Aplicativo Web) do Azure no Gateway de Aplicativo do Azure oferece um recurso de desafio JavaScript (JS) como uma das opções de mitigação para proteção avançada contra bots.

O WAF (Firewall de Aplicativo Web) do Azure no Azure Front Door oferece um recurso de desafio do JavaScript (JS) como uma das opções de mitigação para proteção avançada contra bots. Ele está disponível na versão premium como uma ação no conjunto de regras personalizado e no conjunto de regras do Bot Manager 1.x.

O desafio JavaScript é um desafio invisível da Web que distingue entre usuários legítimos e bots. Bots mal-intencionados falham no desafio, protegendo seus aplicativos Web. Além disso, o desafio JavaScript reduz o atrito para usuários legítimos porque não requer intervenção humana.

Importante

O desafio JavaScript do Azure Web Application Firewall no Azure Application Gateway está atualmente em VERSÃO PRÉVIA. Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Como ele funciona

Quando o desafio JavaScript está ativo no WAF do Azure e a solicitação HTTP(S) de um cliente corresponde a uma regra específica, o cliente é mostrado uma página de desafio do Microsoft JavaScript. O usuário vê essa página por alguns segundos enquanto o navegador calcula o desafio. Se o navegador do usuário computar com êxito o desafio, ele enviará uma resposta de volta para um ponto de extremidade do Azure, que é exposto quando o WAF está configurado. Este endpoint é exposto ao público em geral, no entanto, as solicitações enviadas para este endpoint não são encaminhadas para o back-end e não são computadas nos recursos de limitação de taxa. Caso a chamada do navegador para este endpoint contenha os valores corretos que indiquem uma computação bem-sucedida, o usuário passará no desafio.

O navegador do cliente deve calcular com êxito um desafio JavaScript nessa página para receber a validação do Azure WAF. Quando o cálculo é bem-sucedido, o WAF valida a solicitação como um cliente não-bot e executa o restante das regras do WAF. As solicitações que não conseguirem calcular o desafio com êxito serão bloqueadas.

Solicitações de CORS (compartilhamento de recursos entre origens) são desafiadas em cada tentativa de acesso. Portanto, se um cliente acessa uma página que dispara o desafio JavaScript de um domínio diferente do domínio que hospeda o desafio, o cliente enfrenta o desafio novamente mesmo que o cliente tenha passado no desafio anteriormente.

Além disso, se um cliente resolver o desafio JavaScript e, em seguida, o endereço IP do cliente mudar, o desafio será emitido novamente.

Aqui está um exemplo de página de desafio JavaScript:

Captura de tela mostrando a página do desafio JavaScript.

Expiração

A configuração da política WAF define o tempo de validade do cookie de desafio JavaScript em minutos. O usuário é desafiado após o término do tempo de vida. O tempo de vida é um número inteiro entre 5 e 1,440 minutos e o padrão é 30 minutos. O nome do cookie de desafio do JavaScript é appgw_azwaf_jsclearance no Gateway de Aplicações do Azure.

A configuração da política WAF define o tempo de validade do cookie de desafio JavaScript em minutos. O usuário é desafiado após o término do tempo de vida. O tempo de vida é um número inteiro entre 5 e 1,440 minutos e o padrão é 30 minutos. O nome do cookie para o desafio JavaScript é afd_azwaf_jsclearance no Azure Front Door.

Observação

O cookie de expiração do desafio JavaScript é injetado no navegador do usuário depois de concluir o desafio com êxito.

Limitações

  • Não há suporte para chamadas a AJAX e API: o desafio JavaScript não se aplica a solicitações AJAX e API.
  • Restrição de tamanho do corpo POST: a primeira solicitação que dispara um desafio JavaScript será bloqueada se seu corpo POST exceder 128 KB no Gateway de Aplicativo do Azure.
  • Restrição de tamanho do corpo POST: a primeira solicitação que dispara um desafio JavaScript será bloqueada se seu corpo POST exceder 64 KB no Azure Front Door.
  • Recursos inseridos não HTML: o desafio JavaScript foi projetado para recursos HTML. Não há suporte para desafios para recursos não HTML inseridos em uma página, como imagens, CSS, arquivos JavaScript ou recursos semelhantes. No entanto, se houver uma solicitação de desafio javaScript bem-sucedida anterior, essas limitações serão levantadas.

  • Compatibilidade do navegador: não há suporte para o desafio JavaScript no Microsoft Internet Explorer. Ele é compatível com as versões mais recentes dos navegadores Web Microsoft Edge, Chrome, Firefox e Safari.

  • Não há suporte para o limite de taxa: a ação de desafio JavaScript no Gateway de Aplicativo não tem suporte para regras personalizadas de tipo limite de taxa durante a visualização.

  • Gateway de Aplicativo para Contêineres WAF: Gateway de Aplicativo para Contêineres WAF não oferece suporte ao desafio JavaScript.