Práticas recomendadas para usar as ações CAPTCHA e Challenge - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas para usar as ações CAPTCHA e Challenge

Siga as orientações nesta seção para planejar e implementar o AWS WAF CAPTCHA ou o desafio.

Planeje sua implementação de CAPTCHA e desafio

Determine onde colocar os quebra-cabeças CAPTCHA ou os desafios silenciosos com base no uso do seu site, na sensibilidade dos dados que você deseja proteger e no tipo de solicitação. Selecione as solicitações nas quais você aplicará o CAPTCHA para apresentar os quebra-cabeças conforme necessário, mas evite apresentá-los onde eles não seriam úteis e poderiam prejudicar a experiência do usuário. Use a Challenge ação para executar desafios silenciosos que tenham menos impacto no usuário final, mas ainda ajudem a verificar se a solicitação vem de um navegador JavaScript habilitado.

Os quebra-cabeças de CAPTCHA e os desafios silenciosos só podem ser executados quando os navegadores estão acessando endpoints HTTPS. Os clientes do navegador devem estar sendo executados em contextos seguros para adquirir tokens.

Decida onde executar quebra-cabeças CAPTCHA e desafios silenciosos em seus clientes

Identifique solicitações que você não quer que sejam afetadas pelo CAPTCHA, por exemplo, solicitações de CSS ou imagens. Use CAPTCHA somente quando necessário. Por exemplo, se você planeja fazer uma verificação de CAPTCHA no login e o usuário sempre é levado diretamente do login para outra tela, a exigência de uma verificação de CAPTCHA na segunda tela provavelmente não seria necessária e poderia prejudicar sua experiência de usuário final.

Configure seu Challenge e CAPTCHA use para que AWS WAF só envie quebra-cabeças CAPTCHA e desafios silenciosos em resposta às solicitações. GET text/html Você não pode resolver o quebra-cabeça nem o desafio em resposta a solicitações POST, solicitações OPTIONS de comprovação do compartilhamento de recursos de origem cruzada (CORS) ou qualquer outro tipo de solicitação não GET. O comportamento do navegador para outros tipos de solicitação pode variar e talvez não consiga lidar com as intersticiais adequadamente.

É possível que um cliente aceite HTML, mas ainda não consiga lidar com a intersticial do CAPTCHA ou desafio. Por exemplo, um widget em uma página da web com um iFrame pequeno pode aceitar HTML, mas não conseguir exibir um CAPTCHA ou processá-lo. Evite colocar as ações de regra para esses tipos de solicitações, da mesma forma que para solicitações que não aceitam HTML.

Use CAPTCHA ou Challenge para verificar a aquisição prévia do token

Você pode usar as ações da regra somente para verificar a existência de um token válido, em locais onde usuários legítimos sempre devem ter um. Nessas situações, não importa se a solicitação pode lidar com os intersticiais.

Por exemplo, se você implementar a API CAPTCHA do aplicativo JavaScript cliente e executar o quebra-cabeça CAPTCHA no cliente imediatamente antes de enviar a primeira solicitação ao seu endpoint protegido, sua primeira solicitação sempre deverá incluir um token válido tanto para o desafio quanto para o CAPTCHA. Para obter informações sobre a integração JavaScript do aplicativo cliente, consulteAWS WAF JavaScript integrações.

Para essa situação, em sua web ACL, você pode adicionar uma regra que corresponda a essa primeira chamada e configurá-la com a ação de regra Challenge ou CAPTCHA. Quando a regra coincide com um usuário final e um navegador legítimos, a ação encontrará um token válido e, portanto, não bloqueará a solicitação nem enviará um desafio ou um quebra-cabeça CAPTCHA em resposta. Para obter mais informações sobre como as ações de regra funcionam, consulte Comportamento de ações CAPTCHA e Challenge.

Proteja seus dados confidenciais não HTML com CAPTCHA e Challenge

Você pode usar CAPTCHA e proteções Challenge para dados confidenciais não HTML, como APIs, com a abordagem a seguir.

  1. Identifique as solicitações que recebem respostas em HTML e que são executadas próximas às solicitações de seus dados confidenciais que não sejam HTML.

  2. Escreva regras CAPTCHA ou Challenge que correspondam às solicitações de HTML e às solicitações de seus dados confidenciais.

  3. Ajuste suas configurações de tempo de imunidade de CAPTCHA e Challenge para que, nas interações normais do usuário, os tokens que os clientes obtêm das solicitações de HTML estejam disponíveis e não expirem em suas solicitações de dados confidenciais. Para obter informações sobre ajustes, consulte Expiração do timestamp: tempos de imunidade AWS WAF do token.

Quando uma solicitação de seus dados confidenciais corresponder a uma regra CAPTCHA ou Challenge, ela não será bloqueada se o cliente ainda tiver um token válido do quebra-cabeça ou desafio anterior. Se o token não estiver disponível ou o timestamp expirar, a solicitação para acessar seus dados confidenciais falhará. Para obter mais informações sobre como as ações de regra funcionam, consulte Comportamento de ações CAPTCHA e Challenge.

Use CAPTCHA e Challenge para ajustar suas regras existentes

Revise suas regras existentes para ver se você deseja alterá-las ou adicioná-las. Veja a seguir alguns cenários comuns a serem considerados.

  • Se você tem uma regra baseada em intervalos que bloqueia o tráfego, mas mantém o limite de intervalo relativamente alto para evitar o bloqueio de usuários legítimos, considere adicionar uma segunda regra baseada em intervalos após a regra de bloqueio. Dê à segunda regra um limite inferior ao da regra de bloqueio e defina a ação da regra como CAPTCHA ou Challenge. A regra de bloqueio ainda bloqueará solicitações que estão chegando com um intervalo muito alto, e a nova regra bloqueará a maior parte do tráfego automatizado a um intervalo ainda menor. Para obter mais informações sobre regras baseadas em intervalos, consulte Instrução de regra baseada em intervalos.

  • Se você tiver um grupo de regras gerenciadas que bloqueia solicitações, poderá mudar o comportamento de algumas ou de todas as regras de Block para CAPTCHA ou Challenge. Para fazer isso, na configuração do grupo de regras gerenciadas, substitua a configuração da ação da regra. Para obter mais informações sobre modificar ações de regra, consulte Substituições de ações de regras de grupos de regras.

Teste seu CAPTCHA e desafie as implementações antes de implantá-las

Quanto a todas as novas funcionalidades, siga as orientações em Testando e ajustando suas AWS WAF proteções.

Durante o teste, revise os requisitos de expiração do timestamp do token e defina as configurações de tempo de imunidade em nível de regra e web ACL para obter um bom equilíbrio entre controlar o acesso ao seu site e fornecer uma boa experiência aos seus clientes. Para mais informações, consulte Expiração do timestamp: tempos de imunidade AWS WAF do token.