Sdílet prostřednictvím


Použití CAPTCHA k zabránění robotům v používání webu ASP.NET Web Razor)

od Microsoftu

Tento článek vysvětluje, jak pomocí funkce ReCaptcha (bezpečnostní opatření) zabránit automatizovaným programům (robotům) v provádění úloh na webu ASP.NET Web Pages (Razor).

Co se naučíte:

  • Postup přidání testu CAPTCHA na web

Toto jsou ASP.NET funkce uvedené v článku:

  • Pomocník ReCaptcha .

Poznámka

Informace v tomto článku platí pro ASP.NET Web Pages 1.0 a Web Pages 2.

Informace o CAPTCHA

Kdykoli umožníte, aby se lidé zaregistrovali na vašem webu nebo dokonce jen zadali jméno a adresu URL (například pro komentář na blogu), můžete získat záplavu falešných jmen. Ty jsou často ponechány automatizovanými programy (roboty), které se snaží zanechat adresy URL na každém webu, který najdou. (Běžnou motivací je publikovat adresy URL produktů, které jsou určené k prodeji.)

Pomocí CAPTCHA můžete ověřit, že uživatel je skutečná osoba, a ne počítačový program, a to tak, že pomocí captcha ověříte uživatele, když zaregistrují nebo jinak zadají své jméno a web. CAPTCHA je zkratka pro zcela automatizovaný veřejný turingový test, který oddělí počítače a lidi od sebe. CAPTCHA je test výzvy a odpovědi , ve kterém je uživatel požádán, aby udělal něco, co je pro člověka snadné, ale obtížné pro automatizovaný program. Nejběžnějším typem CAPTCHA je ten, kdy vidíte nějaká zkreslená písmena a zobrazí se výzva k jejich zadání. (Zkreslení by mělo robotům znesnadnit dešifrování písmen.)

Přidání testu ReCaptcha

Na ASP.NET stránkách můžete pomocí pomocné rutiny ReCaptcha vykreslit test CAPTCHA, který je založený na službě ReCaptcha. Pomocník ReCaptcha zobrazí obrázek dvou zkreslených slov, která uživatelé musí před ověřením stránky správně zadat. Odpověď uživatele je ověřena službou ReCaptcha.Net.

Snímek obrazovky s testem Captcha vygenerovaným službou ReCaptcha se dvěma zkreslenými slovy a textovým polem pro ověření uživatele

  1. Zaregistrujte svůj web ve službě ReCaptcha. Po dokončení registrace získáte veřejný klíč a privátní klíč.

  2. Přidejte na svůj web knihovnu ASP.NET webových pomocných rutin, jak je popsáno v tématu Instalace pomocných rutin na webu ASP.NET webových stránek, pokud jste to ještě neudělali.

  3. Pokud ještě nemáte soubor _AppStart.cshtml , vytvořte v kořenové složce webu soubor s názvem _AppStart.cshtml.

  4. Do souboru _AppStart.cshtml přidejte následující Recaptcha nastavení pomocné rutiny:

    @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. Vlastnosti a PrivateKey nastavte PublicKey pomocí vlastních veřejných a privátních klíčů.

  6. Uložte soubor _AppStart.cshtml a zavřete ho.

  7. V kořenové složce webu vytvořte novou stránku s názvem Recaptcha.cshtml.

  8. Stávající obsah nahraďte následujícím kódem:

    @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. Spusťte stránku Recaptcha.cshtml v prohlížeči. PrivateKey Pokud je hodnota platná, zobrazí se na stránce ovládací prvek ReCaptcha a tlačítko. Pokud jste klíče nenastavili globálně v _AppStart.html, zobrazí se na stránce chyba.

    Snímek obrazovky se stránkou prohlížeče Recaptcha dot c s h t m l s vytvořenými tlačítky captcha a Submit

  10. Zadejte slova pro test. Pokud projdete testem ReCaptcha, zobrazí se zpráva o tomto výsledku. Jinak se zobrazí chybová zpráva a znovu se zobrazí ovládací prvek ReCaptcha.

Poznámka

Pokud je váš počítač v doméně, která používá proxy server, možná budete muset nakonfigurovat defaultproxy prvek souboruWeb.config . Následující příklad ukazuje souborWeb.config s elementem defaultproxy nakonfigurovaným tak, aby služba ReCaptcha fungovala.

<?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>

Další materiály