# Cloudflare Turnstile — Como proteger formulários contra bots

Proteja os formulários de login e cadastro contra bots, tentativas automatizadas e abusos, sem depender dos desafios tradicionais de imagem usados em captchas comuns.

### Para que serve o Turnstile?

O Cloudflare Turnstile adiciona uma camada de verificação nos formulários protegidos. Na maioria dos casos, o visitante não precisa fazer nada, pois a validação acontece em segundo plano. Em acessos suspeitos, a Cloudflare pode exibir uma confirmação simples para validar que o acesso é legítimo.

 Atenção: o Turnstile só funciona corretamente quando a chave do site, a chave secreta e a opção de ativação estiverem configuradas no painel.

## 1 - Antes de começar

- **Conta Cloudflare:** é necessário acessar o painel da Cloudflare para gerar as chaves do Turnstile.
- **Domínio correto:** cadastre o domínio real da loja para que o widget funcione no ambiente correto.
- **Chave do site:** é usada no frontend para carregar o widget de verificação.
- **Chave secreta:** é usada pelo backend para validar se o desafio foi aprovado.

## 2 - Criando as chaves na Cloudflare

As chaves do Turnstile devem ser criadas diretamente no painel da Cloudflare.

1. **Acesse a Cloudflare:** entre em **dash.cloudflare.com** e faça login na sua conta. Se ainda não tiver conta, crie uma gratuitamente.
2. **Abra o Turnstile:** no menu lateral, acesse **Turnstile** e clique em **Adicionar site**.
3. **Cadastre o site:** informe o nome do site e o domínio da loja, por exemplo `minhaloja.com.br`.
4. **Selecione o tipo Managed:** use a opção **Managed** para permitir que a Cloudflare decida automaticamente o nível de verificação necessário.
5. **Copie as chaves:** após criar o site, a Cloudflare exibirá a **Site Key** e a **Secret Key**. Copie as duas para configurar no painel.

## 3 - Configurando no painel

Depois de copiar as chaves na Cloudflare, configure o Turnstile dentro do painel da loja.

1. **Acesse as configurações:** vá em **Configurações &gt; Geral** e abra a aba **Turnstile**.
2. **Informe a chave do site:** cole a **Site Key** no campo correspondente.
3. **Informe a chave secreta:** cole a **Secret Key** no campo correspondente. Essa chave deve permanecer protegida e não deve ser exposta publicamente.
4. **Ative o Turnstile:** marque a opção **Ativo** para habilitar a proteção.
5. **Escolha os formulários protegidos:** defina onde o Turnstile será exibido.
    
    
    - **Login do painel:** protege o formulário de acesso dos usuários administradores.
    - **Login/Cadastro do cliente:** protege os formulários de login e criação de conta na vitrine da loja.
6. **Salve as configurações:** após preencher os campos, salve para aplicar a proteção nos formulários selecionados.

 Importante: se apenas uma das chaves estiver preenchida, o widget não deve ser carregado. Configure sempre a Site Key e a Secret Key juntas.

## 4 - Onde o Turnstile pode ser usado

A proteção pode ser aplicada em pontos sensíveis da loja, especialmente onde existem tentativas de login, cadastro ou envio de dados.

**Login do painel** Protege o acesso administrativo contra tentativas automatizadas de login e ataques de força bruta.

**Login do cliente** Ajuda a reduzir tentativas automatizadas de acesso à conta do cliente na vitrine da loja.

**Cadastro do cliente** Reduz cadastros falsos, spam e criação automatizada de contas.

**Formulários sensíveis** Pode ser usado em áreas críticas onde o sistema precisa validar que a interação é legítima.

## 5 - Testando o Turnstile

A Cloudflare disponibiliza chaves de teste que permitem validar se a integração está funcionando sem depender das chaves reais de produção.

**Site Key de teste** `1x00000000000000000000AA`

**Secret Key de teste** `1x0000000000000000000000000000000AA`

1. **Configure as chaves de teste:** cole a Site Key e a Secret Key de teste nos campos do painel.
2. **Ative o Turnstile:** marque a opção **Ativo** e selecione os formulários onde deseja testar.
3. **Acesse o formulário protegido:** abra a tela de login ou cadastro e confirme se o widget é carregado corretamente.
4. **Substitua pelas chaves reais:** depois de validar o funcionamento, remova as chaves de teste e configure as chaves reais da loja.

## 6 - Boas práticas de segurança

O Turnstile ajuda a reduzir abusos automatizados, mas deve ser usado como uma camada adicional de segurança, não como a única proteção do sistema.

- Nunca exponha a Secret Key no frontend ou em páginas públicas.
- Use o Turnstile nos formulários mais sensíveis, como login e cadastro.
- Combine o Turnstile com rate limiting em rotas de autenticação.
- Revise os domínios cadastrados na Cloudflare antes de colocar em produção.
- Use chaves de teste apenas em ambiente de teste ou validação temporária.
- Substitua as chaves de teste pelas chaves reais antes de liberar para uso real.

**Dica:** o Turnstile melhora a proteção contra bots sem prejudicar a experiência do usuário legítimo. Para maior segurança, combine essa proteção com limites de tentativa, bloqueios temporários e monitoramento de acessos suspeitos.