Merhaba arkadaşlar,
Son yapılan Google politika güncellemelerinden sonra pek çok Google ReCAPTCHA bypass edilmeye başlandı. Ve pek çok müşteri spam mailler yüzünden şikayetçi olmaya başladı. “Ne yapmalı…” diye düşünürken Cloudflare’in yapay zeka destekli captchası adeta pelerini rüzgârda uçuşan bir Superman gibi imdadımıza yetişti.
Ya peki bunu nasıl sitemize entegre ediyoruz? Ben PHP olarak anlatacağım. Bunun için Cloudflare’a kayıt olup, giriş yaptığınızı varsayıyorum.
Öncelikle Account Home sayfasındayken sol menüden Turnstile’a tıklıyoruz:

Turnstile sayfasına geldiğimizde Add Site Butonuna tıklıyoruz

Karşımıza gelen sayfada Yüklemek istediğimiz domaini dolduruyoruz ve Save diyoruz.

Bilgiler aşağıdaki gibidir.

Site key anahtarımızı alıyoruz ve ufaktan entegre etmek istediğimiz sayfayı açıyoruz.
Submit Butonunun önüne koymayı tercih ediyorum ben, fakat siz istediğiniz yere aşağıdaki kod bloğunu ekleyebilirsiniz.
NOT : data-sitekey alanına Site Key değerini yapıştırmamız gerekmektedir.
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=_turnstileCb" defer></script>
<div class="cf-turnstile" data-sitekey="0x4AAAA********"></div>
Örnek olarak oluşturduğumuz form :
<!DOCTYPE html>
<html>
<body>
<h2>HTML Forms</h2>
<form action="/action_page.php" method="post">
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname" value="John"><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname" value="Doe"><br><br>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=_turnstileCb" defer></script>
<div class="cf-turnstile" data-sitekey="0x4AAAA********"></div>
<input type="submit" value="Submit">
</form>
<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>
</body>
</html>
Bunu post ettiğimiz sayfada ise aşağıdaki kodu yapıştırarak, Cloudflare tarafından kişinin bot olup olmadığını kontrol ediyoruz.
Not : turnstile_secret değişkeninin olduğu alana Secret Keyimizi giriyoruz.
$turnstile_secret = '0x4AAAAA*********';
$turnstile_response = $_POST['cf-turnstile-response'];
$url = "https://challenges.cloudflare.com/turnstile/v0/siteverify";
$post_fields = "secret=$turnstile_secret&response=$turnstile_response";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
$response = curl_exec($ch);
curl_close($ch);
$response_data = json_decode($response);
if ($response_data->success != 1) {
echo "robot olmadığınızı doğrulayınız";
}
else {
echo "robot değilsiniz";
}
Evet arkadaşlar entegrasyonumuz bu kadar. Herkese keyifli kodlamalar dilerim.