Pular para o conteúdo principal

Cloudflare Turnstile

Airspace usa Cloudflare Turnstile para proteger formulários públicos contra bots e abuso automatizado. Turnstile fornece proteção semelhante a CAPTCHA com mínima fricção para o usuário — a maioria dos visitantes nunca verá um desafio.

Formulários Protegidos​

Turnstile está ativo nas seguintes páginas:

  • Login — previne ataques de credential-stuffing
  • Registro — previne criação em massa de contas
  • Onboarding (criação pública de tenant) — previne provisionamento automatizado de tenants

Configuração​

1. Obter Chaves do Turnstile​

  1. Faça login no seu painel Cloudflare
  2. Navegue até Turnstile na barra lateral
  3. Clique em Add site
  4. Insira o nome do seu site e domínio(s)
  5. Escolha o modo do widget (Managed é recomendado)
  6. Copie a Site Key e Secret Key

2. Configurar Variáveis de Ambiente​

Adicione o seguinte ao seu arquivo .env:

TURNSTILE_SITE_KEY=sua-site-key-aqui
TURNSTILE_SECRET_KEY=sua-secret-key-aqui

O Turnstile é ativado automaticamente quando APP_ENV é staging ou production. Em local, testing e qualquer outro ambiente ele permanece desligado por padrão, então os desenvolvedores não precisam de chaves da Cloudflare para trabalhar nos formulários de login/registro/onboarding. Defina TURNSTILE_ENABLED=true apenas se quiser forçá-lo em um ambiente não produtivo (por exemplo, para verificar o comportamento do widget localmente).

3. Implantar​

Nenhuma etapa adicional é necessária. O widget Turnstile aparecerá automaticamente nos formulários protegidos.

Desabilitando o Turnstile​

Para desabilitar o Turnstile (ex.: para desenvolvimento), defina:

TURNSTILE_ENABLED=false

Quando desabilitado:

  • O widget não é renderizado em nenhum formulário
  • A validação no servidor é ignorada (sempre passa)
  • Nenhuma requisição é feita ao Cloudflare

Solução de Problemas​

SintomaCausaSolução
Widget não apareceTURNSTILE_ENABLED é false ou site key ausenteVerifique os valores no .env
Erro "verificação CAPTCHA falhou"Token expirado ou secret key inválidaVerifique se TURNSTILE_SECRET_KEY corresponde ao seu painel Cloudflare
Formulários funcionam mas sem widgetJavaScript bloqueadoCertifique-se de que challenges.cloudflare.com não está bloqueado por CSP ou bloqueadores de anúncios
Verificação falha após página ociosa por muito tempoTokens Turnstile expiram após ~5 minutosO widget atualiza automaticamente; se os problemas persistirem, recarregue a página