Executando verificação de segurança...
1

[AJUDA] - Problemas com Challenge Page do Cloudflare

Então, tenho um projeto na Vercel usando Next.js. Uma página desse projeto (chamada Match) faz requests dinâmicos para uma API, ou seja, ela as faz várias vezes na mesma página sem precisar atualizá-la, e os elementos mudam dinamicamente com base nas respostas recebidas (novamente, sem precisar atualizar a página).

Desde que adicionei o Cloudflare com o nível de segurança definido como Médio, começou a mostrar uma página de desafio de JavaScript sempre que um visitante acessa a página, o que é normal. No entanto, na página Match, existe um sistema de requests que ocorre a cada 3 segundos, perguntando se encontrou um oponente na fila. E, uma vez que o jogo está em andamento, há outro sistema de requests a cada 10 segundos, perguntando se o oponente já fez sua jogada.

Aparentemente, o Cloudflare bloqueia esses requests se uma pessoa, por exemplo, sai da página e volta. Esse problema foi relatado por um amigo meu que usava o site enquanto trabalhava. Sempre que ele fazia sua jogada, ele fazia outra coisa e voltava quando fosse a vez dele novamente, mas as vezes isso nunca acontecia, e no console mostrava um erro 403, forçando ele a atualizar a página e passar novamente pelo desafio de JavaScript para receber um novo token.

Outro relato foi de outro colega que estava jogando no iPhone. Ele disse que não conseguia encontrar uma partida na fila (no sistema de requests a cada 3 segundos) e também foi bloqueado pelo Cloudflare. Digo isso porque ele foi obrigado a atualizar a página e passar pelo sistema de desafio de JavaScript novamente.

Pensei em tentar desabilitar o nível de segurança para o endpoint da API responsável pelo sistema de fila (3 segundos) e o sistema para verificar se a vez do oponente terminou (10 segundos), mas isso deixaria esse endpoint vulneravel, e também acho difícil reproduzir esses erros para debuggar e testar/tentar adivinhar outras soluções, pois não sei exatamente quais são as condições especificas para triggar esses erros. Então, queria perguntar aqui se há alguma solução existente para isso.

Carregando publicação patrocinada...
1

como vc esta fazendo essa requisição pelo frontend (tecnicamwnte)?

Cloudflare tem rate limiting, da pra relaxar a regra configurando uma regra no firewall e especificando o endpoint da api. é uma solução paliativa.

1

Oi, boa noite! Então, o primeiro jeito de request é quando você está procurando por uma fila, que normalmente ocorre a cada 3 segundos uma vez que o butom de Procurar é apertado.
Já o outro acontece uma vez que você já achou um oponente e já está dentro da partida, que sempre que você passar o seu turno, a pagina irá a cada 10 segundos fazer um request com a função de checar se o turno adversário já terminou.
O problema é que, testando o site eu mesmo, não me acontece os problemas acima, eu tentei fazer o turno, sair da pagina e depois voltar pra ver se conseguia "triggar" o erro. Inicialmente até triggou quando o nivel de segurança tava no "Máximo", quando passei o nivel de segurança para "Médio", eu não consegui triggar nas tentativas e então havia chegado na conclusão que havia sido resolvido. Mas aparentemente ainda não foi. Por eu não saber as condições exatas para "triggar" esse erro, fica um pouco dificil de debuggar até achar uma solução. :(