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.
Zarejestruj swoją witrynę internetową w usłudze ReCaptcha. Po zakończeniu rejestracji otrzymasz klucz publiczny i klucz prywatny.
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.
Jeśli nie masz jeszcze pliku _AppStart.cshtml , w folderze głównym witryny internetowej utwórz plik o nazwie _AppStart.cshtml.
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"; }
PublicKey
Ustaw właściwości iPrivateKey
przy użyciu własnych kluczy publicznych i prywatnych.Zapisz plik _AppStart.cshtml i zamknij go.
W folderze głównym witryny internetowej utwórz nową stronę o nazwie Recaptcha.cshtml.
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>
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.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>