Aracılığıyla paylaş


Botların ASP.NET Web Razor) Sitenizi Kullanmasını Engellemek için CAPTCHA Kullanma

Microsoft tarafından

Bu makalede, otomatik programların (botların) ASP.NET Web Sayfaları (Razor) web sitesinde görevleri gerçekleştirmesini önlemek için ReCaptcha'nın (güvenlik önlemi) nasıl kullanılacağı açıklanmaktadır.

Öğrenecekleriniz:

  • Sitenize CAPTCHA testi ekleme.

Makalede sunulan ASP.NET özellikleri şunlardır:

  • Yardımcı ReCaptcha .

Not

Bu makaledeki bilgiler ASP.NET Web Sayfaları 1.0 ve Web Sayfaları 2 için geçerlidir.

CAPTCHA'lar hakkında

İnsanların sitenize kaydolmasına izin verdiğinizde, hatta bir ad ve URL (blog yorumu için olduğu gibi) girdiğinizde, sahte adlar akınına uğrayabilirsiniz. Bunlar genellikle bulabildikleri her web sitesinde URL'leri bırakmaya çalışan otomatik programlar (botlar) tarafından bırakılır. (Yaygın bir motivasyon, satışa sunulan ürünlerin URL'lerini yayınlamaktır.)

Kaydolan veya başka bir şekilde adını ve sitesini giren kullanıcıları doğrulamak için CAPTCHA kullanarak bir kullanıcının bilgisayar programı değil gerçek kişi olduğundan emin olmanıza yardımcı olabilirsiniz. CAPTCHA, Bilgisayarlara ve İnsanlara Ayrı Olarak Bildirmek için Tamamen Otomatik Genel Turing testi anlamına gelir. CAPTCHA, kullanıcıdan yapması kolay ancak otomatik bir programın yapması zor olan bir şey yapmasının istendiği bir sınama yanıtı testidir. EN yaygın CAPTCHA türü, bozuk harfler gördüğünüz ve bunları yazmanız istendiği bir türdür. (Bozulmanın botların harfleri çözmesini zorlaştırması gerekir.)

ReCaptcha Testi Ekleme

ASP.NET sayfalarda, ReCaptcha hizmetini temel alan bir CAPTCHA testini işlemek için yardımcıyı kullanabilirsinizReCaptcha. ReCaptcha yardımcısı, sayfa doğrulanmadan önce kullanıcıların doğru şekilde girmesi gereken iki bozuk sözcüğün görüntüsünü görüntüler. Kullanıcı yanıtı ReCaptcha.Net hizmeti tarafından doğrulanır.

ReCaptcha hizmeti tarafından oluşturulan ve iki bozuk sözcüğü ve kullanıcı doğrulaması için bir metin alanını gösteren Captcha testinin ekran görüntüsü.

  1. Web sitenizi ReCaptcha hizmetine kaydedin. Kaydı tamamladığınızda ortak anahtar ve özel anahtar alırsınız.

  2. Henüz yapmadıysanız, ASP.NET Web Sayfaları Sitesine Yardımcı Yükleme bölümünde açıklandığı gibi web sitenize ASP.NET Web Yardımcıları Kitaplığı'nı ekleyin.

  3. Henüz bir _AppStart.cshtml dosyanız yoksa, web sitesinin kök klasöründe _AppStart.cshtml adlı bir dosya oluşturun.

  4. _AppStart.cshtml dosyasına aşağıdaki Recaptcha yardımcı ayarlarını ekleyin:

    @using Microsoft.Web.Helpers;
    @{
      // Add the PublicKey and PrivateKey strings with your public
      // and private keys. Obtain your PublicKey and PrivateKey
      // at the ReCaptcha.Net (http://recaptcha.net) website.
      ReCaptcha.PublicKey = "your-public-key";
      ReCaptcha.PrivateKey = "your-private-key";
    }
    
  5. PublicKey Kendi genel ve özel anahtarlarınızı kullanarak ve PrivateKey özelliklerini ayarlayın.

  6. _AppStart.cshtml dosyasını kaydedin ve kapatın.

  7. Web sitesinin kök klasöründe Recaptcha.cshtml adlı yeni bir sayfa oluşturun.

  8. Mevcut içeriği aşağıdakilerle değiştirin:

    @using Microsoft.Web.Helpers;
    @{
      var showRecaptcha = true;
      if (IsPost) {
        if (ReCaptcha.Validate()) {
            @:Your response passed!
            showRecaptcha = false;
        }
        else{
          @:Your response didn't pass!
        }
      }
    }
    <!DOCTYPE html>
    <html>
        <head>
            <title>Testing Global Recaptcha Keys</title>
        </head>
        <body>
        <form action="" method="post">
        @if(showRecaptcha == true){
            if(ReCaptcha.PrivateKey != ""){
                <p>@ReCaptcha.GetHtml()</p>
                <input type="submit" value="Submit" />
            }
            else {
                <p>You can get your public and private keys at
                the ReCaptcha.Net website (http://recaptcha.net).
                Then add the keys to the _AppStart.cshtml file.</p>
            }
        }
        </form>
        </body>
    </html>
    
  9. Tarayıcıda Recaptcha.cshtml sayfasını çalıştırın. PrivateKey Değer geçerliyse sayfada ReCaptcha denetimi ve bir düğme görüntülenir. anahtarları_AppStart.html'de genel olarak ayarlamadıysanız, sayfa bir hata görüntüler.

    Oluşturulan captcha ve Gönder düğmelerini gösteren Recaptcha dot c s h t m l tarayıcı sayfasının ekran görüntüsü.

  10. Test için sözcükleri girin. ReCaptcha testini geçerseniz, bu etkiye ilişkin bir ileti görürsünüz. Aksi takdirde bir hata iletisi görürsünüz ve ReCaptcha denetimi yeniden görüntülenir.

Not

Bilgisayarınız ara sunucu kullanan bir etki alanındaysa, Web.config dosyasının defaultproxy öğesini yapılandırmanız gerekebilir. Aşağıdaki örnekte, ReCaptcha hizmetinin çalışmasını sağlamak için yapılandırılmış öğesini içeren bir Web.config dosyası defaultproxy gösterilmektedir.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.net>
      <defaultProxy>
         <proxy
            usesystemdefault = "false"
            proxyaddress="http://myProxy.MyDomain.com"
            bypassonlocal="true"
            autoDetect="False"
         />
      </defaultProxy>
   </system.net>
</configuration>

Ek Kaynaklar