Udostępnij za pośrednictwem


Korzystanie z capTCHA w celu uniemożliwienia botom korzystania z witryny ASP.NET Web Razor)

autor: Microsoft

W tym artykule wyjaśniono, jak używać narzędzia ReCaptcha (miary zabezpieczeń), aby uniemożliwić automatyczne programy (boty) wykonywanie zadań w witrynie internetowej ASP.NET Web Pages (Razor).

Czego nauczysz się:

  • Jak dodać test CAPTCHA do witryny.

Oto ASP.NET funkcje wprowadzone w artykule:

  • Pomocnik ReCaptcha .

Uwaga

Informacje zawarte w tym artykule dotyczą stron sieci Web 1.0 i Web Pages 2 ASP.NET.

Informacje o capTCHAs

Za każdym razem, gdy zezwolisz osobom na zarejestrowanie się w witrynie, a nawet po prostu wprowadź nazwę i adres URL (na przykład w przypadku komentarza w blogu), możesz uzyskać powodzi fałszywych nazw. Są one często pozostawiane przez zautomatyzowane programy (boty), które próbują pozostawić adresy URL w każdej witrynie internetowej, którą mogą znaleźć. (Częstą motywacją jest opublikowanie adresów URL produktów do sprzedaży).

Możesz pomóc upewnić się, że użytkownik jest prawdziwą osobą, a nie programem komputerowym przy użyciu capTCHA , aby zweryfikować użytkowników podczas rejestrowania lub w inny sposób wprowadzać ich nazwę i witrynę. CAPTCHA to całkowicie zautomatyzowany publiczny test Turing, który informuje komputery i ludzi od siebie. CAPTCHA to test odpowiedzi na wyzwanie , w którym użytkownik jest proszony o zrobienie czegoś, co jest łatwe dla osoby do zrobienia, ale trudne do wykonania przez zautomatyzowany program. Najczęstszym typem CAPTCHA jest jeden, w którym widać zniekształcone litery i są proszeni o ich wpisanie. (Zniekształcenie ma utrudnić botom rozszyfrowanie liter).

Dodawanie testu ReCaptcha

Na stronach ASP.NET można użyć ReCaptcha pomocnika do renderowania testu CAPTCHA opartego na usłudze ReCaptcha. Pomocnik ReCaptcha wyświetla obraz dwóch zniekształconych wyrazów, które użytkownicy muszą wprowadzić poprawnie przed zweryfikowaniem strony. Odpowiedź użytkownika jest weryfikowana przez usługę ReCaptcha.Net.

Zrzut ekranu przedstawiający test Captcha wygenerowany przez usługę ReCaptcha przedstawiający dwa zniekształcone wyrazy i pole tekstowe na potrzeby weryfikacji użytkownika.

  1. Zarejestruj swoją witrynę internetową w usłudze ReCaptcha. Po zakończeniu rejestracji otrzymasz klucz publiczny i klucz prywatny.

  2. Dodaj bibliotekę pomocników sieci Web ASP.NET do witryny sieci Web zgodnie z opisem w temacie Instalowanie pomocników w witrynie ASP.NET stron sieci Web, jeśli jeszcze tego nie zrobiono.

  3. Jeśli nie masz jeszcze pliku _AppStart.cshtml , w folderze głównym witryny internetowej utwórz plik o nazwie _AppStart.cshtml.

  4. Dodaj następujące Recaptcha ustawienia pomocnika w pliku _AppStart.cshtml :

    @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 Ustaw właściwości i PrivateKey przy użyciu własnych kluczy publicznych i prywatnych.

  6. Zapisz plik _AppStart.cshtml i zamknij go.

  7. W folderze głównym witryny internetowej utwórz nową stronę o nazwie Recaptcha.cshtml.

  8. Zastąp istniejącą zawartość następującymi elementami:

    @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. Uruchom stronę Recaptcha.cshtml w przeglądarce. PrivateKey Jeśli wartość jest prawidłowa, na stronie zostanie wyświetlona kontrolka ReCaptcha i przycisk. Jeśli klucze nie były ustawiane globalnie w _AppStart.html, na stronie zostanie wyświetlony błąd.

    Zrzut ekranu przedstawiający stronę przeglądarki Recaptcha dot c h h t m l, przedstawiającą utworzone przyciski captcha i Submit.

  10. Wprowadź wyrazy dla testu. Jeśli przejdziesz test ReCaptcha, zobaczysz komunikat do tego efektu. W przeciwnym razie zostanie wyświetlony komunikat o błędzie, a kontrolka ReCaptcha jest odtwarzana ponownie.

Uwaga

Jeśli komputer znajduje się w domenie korzystającej z serwera proxy, może być konieczne skonfigurowanie defaultproxy elementu pliku Web.config . W poniższym przykładzie przedstawiono plik Web.config z elementem defaultproxy skonfigurowanym w celu włączenia usługi ReCaptcha do działania.

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

Dodatkowe zasoby