Asp.net Mvc 5’te reCaptcha Kullanımı

Captcha, web sitelerinin insanların kötü kullanımlarından korumak için geliştirilen bir sistem. Pek çoğumuz internetten bilgi girişi yaparken, captcha dediğimiz bu sistemi kullanmak durumunda kalmışızdır. İngilizce açılımı, CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart). Türkçesi insanlarla, bilgisayarların (otomatik çalışan scriptler, programlar) birbirinden ayrılması anlamına gelmektedir.

Fakat captchaların kullanımı, son kullanıcılar için bazen çok sıkıcı olmaktadır. Resimlerde yazan yazıları, sayıları girmek bir süre sonra insanlar için yorucu ve bıktırıcı olmaktadır.

Bu tür problemler düşünülerek, reCAPTCHA sistemi geliştirildi.

Bu blogda google tarafından geliştirilmiş reCAPTCHA servisini bir asp.net mvc projesinde nasıl kullanabileceğimizi inceleyeceğiz.

Bu proje için Visual Studio 2015 community edition’u kullanacağız.

recaptchavisual2015

recaptchamvcprojectselect2

Change Authentication butonuna tıklayarak, no authentication seçebilirsiniz.

Projemiz oluştuktan sonra, artık model sınıfımızı oluşturabiliriz. Solution Explorer’da, Model klasörüne sağ tıklayarak ‘Add Class’ diyerek Kisi sınıfını oluşturabiliriz.

Artık index.cshtml dosyasını güncellemeye başlayabiliriz (Views\Home\Index.cshtml):

HomeController dosyasını da değiştirelim:

Bu şekilde run ettiğimiz zaman, aşağıdaki sayfa açılacak:

recaptchailkacilis

Ad ve soyad alanlarını doldurup kaydete tıklarsak bize kayıt başarılı mesajını dönecektir.

Şimdi form girişimizi botlardan korumak için reCaptchayı nasıl kullanacağımıza bakalım. Öncelikle google recaptcha sitesine giderek Get reCaptcha diyerek recaptcha servisini kullanacağımız siteyi kaydediyoruz. Bunun için gmail hesabınızla  giriş yapmanız gerekiyor.

Kaydettiğimiz zaman bize iki tane key veriyor, Site key ve Secret key. Bu keyleri güvenli bir yere kaydetmemiz gerekiyor.

Daha sonra aşağıdaki script referansını layout head kısmına ekleriz

Index.html deki formun sonuna da aşağıdaki ifadeyi koymamız gerekiyor.

Değişiklikleri yaptığımızda _Layout.cshtml’in son hali:

Index.cshtml’in son hali:

Bu şekilde yapıp kaydettikten sonra, ekranımız aşağıdaki gibi çıkacaktır:

recaptchailkaciliswithrecapt

Recaptcha localde çalıştığı için kırmızı bir uyarı yazısı veriyor. Bu normal.

Fakat bu recaptcha işlevini görmesi için server side tarafında da kod yazılması gerekiyor. HomeController.cs dosyasını aşağıdaki gibi değiştirelim. Google recaptcha servisinden gelen sonucu aktarmak için, yeni bir sınıf ekledim: CaptchaResult.

Bu şekilde HomeController’i değiştirince, artık recaptchayı kullanarak sitemizi koruma yönünde etkili bir adım atmış oluyoruz.

 

 

 

 

 

 

 

 

 

 

 

Yorum Gönder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top