PHP — Alternativa para o Recaptcha
Simplifique a proteção contra bots em seu site com o Turnstile da CloudFlare: um substituto acessível para o Recaptcha
![PHP — Alternativa para o Recaptcha](/content/images/size/w2000/2024/02/robot-3010309_1920.jpg)
Olá Gente!
O Recaptcha já foi muito bom, mas cada vez mais ele se torna mais caro para uso de empresas.
Porem, temos um substituto a altura, o “Turnstile” da CloudFlare.
1. Criando Cadastro na Turnstile
Acesse o Painel da CloudFlare, clique em “Turnstile” e em seguida em “Adicionar Site”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-ckbc7_gwlbn27mtgwobt7g.png)
Preencha os campos conforme a indicação abaixo:
- Nome do Site: Um nome para identificar o código da Turnstile
- Domínio: Os domínios onde o Turnstile será utilizado
- Modo de widget: Mantenha a opção “Gerenciado” selecionada
- Gostaria de optar pela pré-liberação deste site: Mantenha a opção “Não” selecionada
A janela deve ficar similar a janela abaixo:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-m_uoy7jujjqfejwp4mwhdq.png)
Em seguida, clique em “Criar”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-velkjm2qflrfpsamtv2p9g.png)
Serão exibidas as chaves de configuração (“Chave do site” e “Chave secreta”), copie estes dados:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-qoodtm9-o8c3q_wdmwykgq.png)
2. Configurado no Site
Em seu formulário, insira a Tag abaixo substituindo a variável “data-sitekey” pela “Chave do site” que copiamos ao Criar a Tag:
<div class=”cf-turnstile” data-sitekey=”0x4AAAAAAAQ3MHs_6NTMebTS” data-theme=”light”></div>
Insira o Carregamento do Arquivo Js:
<script src=”https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
Será exibido o desafio no site:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-4hmal82lghhe9aozpt9f7q.png)
Observe que a Turnstile cria um campo oculto “cf-turnstile-response” que será utilizado para validar o Captcha.
Segue exemplo:
3. Validando o Captcha
Após o Formulário ser enviado, iremos pegar a resposta do captcha na variável “cf-turnstile-response”.
Agora iremos enviar um POST para:
https://challenges.cloudflare.com/turnstile/v0/siteverify
Neste Post, iremos enviar os campos abaixo:
- secret: Aqui preencha a “Chave secreta” que copiamos do painel da CloudFlare
- response: Preencha o valor recebido na variavel “cf-turnstile-response”
Segue exemplo do Post:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-mliyeg826y0g2axhy7aaxq.png)
A resposta deste Post, será um Json onde temos o campo “success” indicando que a requisição é válida ou não:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-mndywibmz1nwmpepd74_ha.png)
Segue exemplo verificando via Curl:
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋