THT DUYURU

PHP Hypertext Processor ile ilgili sanal yönergeler üzerinde geliştirme için tasarlanmış dil ile ilgili dökümanların paylaşım alanı.

chat
Seçenekler

CAPTCHA ve reCAPTCHA Nedir? Sitenize nasıl eklersiniz? // Detaylı Anlatım

ENİGMA - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2016
Mesajlar:
1.932
Konular:
107
Teşekkür (Etti):
5
Teşekkür (Aldı):
1125
Ticaret:
(0) %
24-04-2020 17:46
#1
CAPTCHA ve reCAPTCHA Nedir? Sitenize nasıl eklersiniz? // Detaylı Anlatım

Merhaba,

Bu yazıda, çoğu zaman canınızı sıkan keşke olmasa dediğiniz can sıkıcı insan doğrulama testleri CAPTCHA ve reCAPTCHA adı verilen biraz daha az can sıkıcı kuzenleri hakkında bilmeniz gerekenleri anlatıp kendi sitenize nasıl ekleyebileceğinizi anlatacağım. Önümüzdeki birkaç dakika içinde şunları öğreneceksiniz:
Konu içeriği
CAPTCHA'lar nedir?
reCAPTCHA'lar nedir
ReCaptcha v2 nasıl kullanılır?
CAPTCHA nasıl oluşturulur?



CAPTCHA nedir?

CAPTCHA, web sitelerinin formlar veya aramalar gibi şeylere erişmenize izin vermeden önce sizi çözmeye zorlayabileceği bir test türüdür. CAPTCHA'nın açılımı : "Completely Automated Public Turing test to tell Computers and Humans Apart" dır. Açılımı türkçeye "İnsan ve Bilgisayar Ayrımı Amaçlı Tam Otomatik Genel Turing Testi" şekilde çevirmiş.
Adından da anlaşılacağı gibi, bu testlerin amacı o an işlem yapan kullanıcının insan mı yoksa makine mi olduğuna karar vermektir. Bu testler, spam gönderenlerin ve bilgisayar korsanlarının otomatik araçlar kullanmasını engellemek için oluşturulmuştur. CAPTCHA'lar bu tür sorunlara karşı bir savunma olarak geliştirilmiştir. CAPTCHA'lar bir insanın tamamlaması için "kolay" fakat bilgisayarın tamamlaması zor bir test oluşturmaktır. Test doğru bir biçimde tamamlandığı takdirde sizin bir insan olduğunuzu varsayar ve işleminizi rahatlıkla gerçekleştirebilirsiniz.
Yapay zeka teklonojisinin geliştirilmesiyle birlikte CAPTCHA sorularu yapay zekalar tarafından çözülmeye başlandı o yüzden CAPTCHA kullanımının yerini Google'un geliştirdiği ReCAPTCHA teklonojisi aldı.

ReCAPTCHA nedir?

reCAPTCHA, Google'un geliştirdiği CAPTCHA'nın gelişmiş sürümüdür. Bu CAPTCHA türü, kullanıcılar ve bir web sitesi arasındaki etkileşimlere risk analizi algoritmaları uygulayarak kullanıcının insan veya yazılım olma olasılığını gösteren bir paun verir. Web sitesi Yöneticisi, oluşturulan puana bakarak kullanıcı tarafından gönderilen verilere ne olacağına karar verir. Bazen bir insan olarak ben bile çözmekte zorlanıyorum

ReCaptcha v2 nasıl kullanılır?


Gereksinimler
HTML hakkında temel bilgiler
PHP ve değişkenleri ve nesneleri nasıl çağrıldığı hakkında düşük düzeyde bilgi
PHP 5.6+ kurulu olan web sitesi veya yerel sunucu (localhost)


ReCaptcha nasıl site kaydı oluşturulur?

1- ReCaptcha Admin paneline erişmek için bir Google hesabınızın olması gerekir.

2- Vermiş olduğum bağlantıya tıklayıp yeni site kaydı yapmalısınız.
https://www.google.com/recaptcha/admin/create


- WAMP veya XAMPP sunucunuzda test etmek için, etiket ve alan adı kutucuklarına localhost yazabilirsiniz.
3- Site anahtarını ve gizli anahtarı kaydedin , böylece bu anahtarları daha sonra komut dosyasında kullanabilirsiniz.

4- Web klasörünüzde yeni bir .php dosyası oluşturun.

5- Sonra aşağıdaki kodu php dosyanıza yapıştırabilirsiniz.
Kod:
<?php

class Captcha
{
    private $secret = 'GİZLİ_ANAHTAR'; // Gizli Anahtar
    private $url = 'https://www.google.com/recaptcha/api/siteverify'; // API URL
    public function Check()
    {
        $get = file_get_contents($this->url . '?secret=' . $this->secret . '&response=' . $_POST['g-recaptcha-response']);

        $data = json_decode($get);

        if ($data->success == true)
        {
            return true;
        }
        return false;
    }
}
$captcha = new Captcha();

?>

<html>
<head>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>

    <form method="POST">
        <div class="g-recaptcha" data-sitekey="SITE_ANAHTARI"></div> <!-- //Site anahtarı//-->
        <input type="submit" name="submit" value="Submit" />
    </form>

<?php if (isset($_POST['submit'])): ?>
    <?php if ($captcha->Check()): ?>

            Tebrikler, işe yaradı!

        <?php else: ?>

            Captcha yanlış veya doğru ayarlanmadı!

    <?php endif; ?>
<?php endif; ?>


</body>
</html>
6- Koda'da SITE_ANAHTARI ve GİZLİ_ANAHTAR yazan yerleri size verilen anahtarlar ile değiştirin.

7- Ve oluşturduğunuz php dosyasını apache sunucunuzda açarak test edin.

CAPTCHA nasıl oluşturulur?

1- captcha.php ve kontrol.php adında php dosyaları oluşturun.

2- captcha.php dosyasına aşağıdaki kodu yapıştırın.
Kod:
<?php

	session_start();
	$kod = substr(md5(uniqid(rand(0, 6))), 0, 6);
	$_SESSION['kod'] = $kod;
	header('Content-type: image/png');
	$kod_uzunluk = strlen($kod);
	$genislik = imagefontwidth(5) * $kod_uzunluk;
	$yukseklik = imagefontheight(5);
	$resim = imagecreate($genislik, $yukseklik);
	$arka_renk = imagecolorallocate($resim, 0, 0, 0);
	$yazi_renk = imagecolorallocate($resim, 255, 255, 255);
	imagefill($resim, 0, 0, $arka_renk);
	imagestring($resim, 5, 0, 0, $kod, $yazi_renk);
	imagepng($resim);

?>
3- kontrol.php dosyasına aşağıdaki kodu yapıştırın.
Kod:
<?php

	session_start();
	$kod=$_SESSION['kod'];
	echo "<img src='capcta.php'/>";
	echo "<br/><br/><br/>
	<form action='' method='POST'>
		<input type='text' name='kontrol'/>
		<input type='submit'/>
	</form>
	";

	if($_POST){
		$kntrl=$_POST['kontrol'];
		if($kntrl==$kod){
			echo "Kod doğru";
		}
		else{
			echo "yanlıs kod girdiniz dekrar deneyin";
		}
	}
	else{
		echo "";
	}
	
?>
4- Ve oluşturduğunuz php dosyasını apache sunucunuzda açarak test edin.
Daha zor CAPTCHA için bunu kullanabilirsiniz. CAPTCHA resimlerinin ve yazılarının rengini değiştirir

Kod:
$arka_renk = imagecolorallocate($resim, rand(0, 255), rand(0, 255), rand(0, 255));
$yazi_renk = imagecolorallocate($resim, rand(0, 255), rand(0, 255), rand(0, 255));
Üstü çizili sayılar üretmesini istiyorsanız aşağıdaki kodu kullanabilirsiniz.

Kod:
for ($i = 0; $i < 6; $i++) {
	imageline($resim, rand(0, 5) * 10, rand(0, 10), rand(0, 10) * 0, 10, $yazi_renk); //imagefill($resim, 0, 0, $arka_renk); yazısının altına eklemelisiniz !!!!!
}
---------------------

Teşekkür Butonunu Kullanalım...! >

Konu ENİGMA tarafından (24-04-2020 17:47 Saat 17:47 ) değiştirilmiştir.
TebriZz, TeamRound Teşekkür etti.
Çiçero - ait Kullanıcı Resmi (Avatar)
Özel Üye
Üyelik tarihi:
09/2008
Nereden:
Türk Otağ
Yaş:
37
Mesajlar:
1.540
Konular:
160
Teşekkür (Etti):
820
Teşekkür (Aldı):
1033
Ticaret:
(0) %
24-04-2020 18:31
#2
Cevap: CAPTCHA ve reCAPTCHA Nedir? Sitenize nasıl eklersiniz? // Detaylı Anlatım
Elinize sağlık kardeşim..
TeamRound - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
Uzay
Mesajlar:
1.569
Konular:
104
Teşekkür (Etti):
504
Teşekkür (Aldı):
323
Ticaret:
(0) %
24-04-2020 18:32
#3
Cevap: CAPTCHA ve reCAPTCHA Nedir? Sitenize nasıl eklersiniz? // Detaylı Anlatım
Eline Sağlık Güzel konu Olmuş
---------------------
Akıl ve mantığın halledemeyeceği mesele yoktur.

Yanlış bildiğin yolda; hеrkеslе yürüyеcеğinе, doğru bildiğin yolda; tеk başına yürü…

TeamRound

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler