reCAPTCHA w wersji 3 zwraca wynik dla każdego żądania bez utrudniania działania użytkownika. Wynik jest obliczany na podstawie interakcji z Twoją witryną i pozwala na podjęcie odpowiednich działań w witrynie. Zarejestruj klucze reCAPTCHA w wersji 3 w konsoli administracyjnej ReCAPTCHA.
Z tego artykułu dowiesz się, jak włączyć i dostosować reCAPTCHA w wersji 3 na swojej stronie internetowej.
Miejsce docelowe w witrynie
reCAPTCHA w wersji 3 nigdy nie przerywa użytkownikom korzystania z usługi, więc możesz ją uruchamiać w dowolnym momencie bez wpływu na konwersje. reCAPTCHA działa najlepiej, gdy ma największy kontekst dotyczący interakcji z Twoją witryną, co wynika zarówno z prawidłowego, jak i nieodpowiedniego zachowania. Dlatego zalecamy stosowanie weryfikacji reCAPTCHA w formularzach lub działaniach oraz w tle stron na potrzeby analiz.
Możesz wykonać reCAPTCHA na dowolnej liczbie działań na tej samej stronie.
Automatyczne wiązanie wyzwania do przycisku
Najprostszą metodą korzystania z reCAPTCHA w wersji 3 na stronie jest dołączenie niezbędnych zasobów JavaScript i kilku atrybutów do przycisku HTML.
Wczytaj interfejs JavaScript API.
<script src="https://www.google.com/recaptcha/api.js"></script>
Dodaj funkcję wywołania zwrotnego do obsługi tokena.
<script> function onSubmit(token) { document.getElementById("demo-form").submit(); } </script>
Dodaj atrybuty do przycisku HTML.
<button class="g-recaptcha" data-sitekey="reCAPTCHA_site_key" data-callback='onSubmit' data-action='submit'>Submit</button>
Automatyczne wywoływanie wyzwania
Jeśli chcesz mieć większą kontrolę nad tym, kiedy uruchamia się reCAPTCHA, możesz użyć metody execute
w obiekcie grecaptcha
. W tym celu musisz dodać do wczytywania skryptu reCAPTCHA parametr render
.
Wczytaj interfejs JavaScript API przy użyciu klucza witryny.
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
Wywołuj funkcję
grecaptcha.execute
w przypadku każdego działania, które chcesz chronić.<script> function onClick(e) { e.preventDefault(); grecaptcha.ready(function() { grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) { // Add your logic to submit to your backend server here. }); }); } </script>
Natychmiast wyślij token do backendu z żądaniem weryfikacji.
Interpretacja wyniku
reCAPTCHA w wersji 3 zwraca wynik (prawdopodobnie prawidłową interakcję to 1,0, a 0,0 – z dużym prawdopodobieństwem, że to bot). W zależności od wyniku możesz podejmować różne działania w kontekście swojej witryny. Każda witryna jest inna, ale poniżej podajemy kilka przykładów wykorzystania wyniku w witrynach. Tak jak w poniższych przykładach, lepiej działaj za kulisami, zamiast blokować ruch, aby lepiej chronić swoją witrynę.
Przypadek użycia | Rekomendacja |
---|---|
strona główna | Sprawdzaj spójny obraz ruchu w konsoli administracyjnej podczas filtrowania danych z aplikacji wyodrębniających dane. |
logowanie | W przypadku niskich wyników wymagaj uwierzytelniania dwuskładnikowego lub potwierdzania adresu e-mail, aby zapobiec atakom polegającym na upychaniu danych logowania. |
media społecznościowe | Ogranicz zaproszenia do znajomych, na które nie ma odpowiedzi od użytkowników naruszających zasady, i wysyłaj ryzykowne komentarze do moderacji. |
handel elektroniczny | Wyprzedź prawdziwą sprzedaż przed botami i identyfikuj ryzykowne transakcje. |
reCAPTCHA uczy się na podstawie rzeczywistego ruchu w witrynie. Z tego powodu wyniki w środowisku przejściowym lub krótko po jego wdrożeniu mogą się różnić od wyników w środowisku produkcyjnym. reCAPTCHA w ogóle nie zakłóca procesu użytkownika, więc możesz najpierw uruchomić reCAPTCHA bez podejmowania żadnych działań, a potem określić progi, analizując ruch w konsoli administracyjnej. Domyślnie możesz użyć progu na poziomie 0, 5.
Działania
reCAPTCHA w wersji 3 wprowadza nową koncepcję: działania. Jeśli podasz nazwę działania w każdym miejscu wykonywania reCAPTCHA, włączysz te nowe funkcje:
- Szczegółowy podział danych dotyczących 10 najczęstszych działań w konsoli administracyjnej
- Adaptacyjna analiza ryzyka na podstawie kontekstu działania ze względu na różnice w zachowaniach użytkowników.
Ważne jest, aby podczas weryfikowania odpowiedzi reCAPTCHA sprawdź, czy nazwa działania jest zgodna z oczekiwaniami.
Odpowiedź dotycząca weryfikacji witryny
Wyślij żądanie weryfikacji tokena odpowiedzi jako reCAPTCHA v2 lub Invisible reCAPTCHA.
Odpowiedź to obiekt JSON:
{
"success": true|false, // whether this request was a valid reCAPTCHA token for your site
"score": number // the score for this request (0.0 - 1.0)
"action": string // the action name for this request (important to verify)
"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
"hostname": string, // the hostname of the site where the reCAPTCHA was solved
"error-codes": [...] // optional
}
Wskazówki
grecaptcha.ready()
uruchamia funkcję po wczytaniu biblioteki reCAPTCHA. Aby uniknąć wyścigu za pomocą funkcjiapi.js
, umieść przed skryptami wywołującymi grecaptcha symbolapi.js
lub nadal używaj onload callback zdefiniowanego w interfejsie API w wersji 2.- Spróbuj przyciągnąć wywołanie
execute
do interesujących lub poufnych działań, takich jak rejestracja, zresetowanie hasła, zakup lub granie. - Użyj
https://www.google.com/recaptcha/api.js?trustedtypes=true
, aby wczytać kod zgodny z zaufanymi typami.