Przegląd:
Przepraszam, że odpowiadam na złe wieści, ale po badaniach i debugowaniu jest całkiem jasne, że nie ma sposobu, aby dostosować styl nowych elementów sterujących reCAPTCHA. Kontrole są pakowane w sposób iframe
, który uniemożliwia korzystanie z CSS do stylu ich i tego samego pochodzenia polityka zapobiega JavaScript dostępu do zawartości, wykluczając nawet hacky rozwiązanie.
Dlaczego nie dostosuj interfejsu API ?:
W przeciwieństwie do reCAPTCHA API w wersji 1.0 , w wersji 2.0 API nie ma opcji dostosowywania . Jeśli zastanowimy się, jak działa ten nowy interfejs API, nie jest zaskoczeniem, dlaczego.
Chociaż nowy interfejs API reCAPTCHA może wydawać się prosty, za tym skromnym polem wyboru kryje się wysoki stopień wyrafinowania. CAPTCHA od dawna polegają na niezdolności robotów do rozwiązywania zniekształconego tekstu. Jednak nasze badania wykazały niedawno, że dzisiejsza technologia sztucznej inteligencji może rozwiązać nawet najtrudniejszy wariant zniekształconego tekstu z dokładnością 99,8%. Tak więc zniekształcony tekst nie jest już sam w sobie niezawodnym testem.
Aby temu przeciwdziałać, w zeszłym roku opracowaliśmy zaplecze zaawansowanej analizy ryzyka dla reCAPTCHA, które aktywnie bierze pod uwagę całe zaangażowanie użytkownika w CAPTCHA - przed, w trakcie i po - w celu ustalenia, czy ten użytkownik jest człowiekiem. Dzięki temu możemy mniej polegać na pisaniu zniekształconego tekstu, a co za tym idzie, oferować użytkownikom lepsze wrażenia. Rozmawialiśmy o tym w naszym walentynkowym poście na początku tego roku.
Gdybyś był w stanie bezpośrednio manipulować stylizacją elementów sterujących, mógłbyś łatwo ingerować w logikę profilowania użytkownika, która umożliwia nową reCAPTCHA.
A co z niestandardowym motywem ?:
Teraz nowy interfejs API oferuje theme
opcję , za pomocą której możesz wybrać gotowy motyw, taki jak light
i dark
. Jednak obecnie nie ma sposobu na utworzenie niestandardowego motywu. Jeśli sprawdzimy iframe
, stwierdzimy, że theme
nazwa jest przekazywana w ciągu zapytania src
atrybutu. Ten adres URL wygląda mniej więcej tak.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Ten parametr określa, jaka nazwa klasy CSS jest używana w elemencie opakowania w iframe
i określa predefiniowany motyw do użycia.
Przeglądając zminimalizowane źródło, odkryłem, że w rzeczywistości istnieją 4 prawidłowe wartości motywu, czyli więcej niż 2 wymienione w dokumentacji, ale default
i standard
są takie same jak light
.
Widzimy tutaj kod, który wybiera nazwę klasy z tego obiektu.
Nie ma kodu dla motywu niestandardowego, a jeśli theme
zostanie określona jakakolwiek inna wartość, użyje standard
motywu.
Podsumowując:
Obecnie nie ma możliwości pełnego iframe
wystylizowania nowych elementów reCAPTCHA, stylizować można jedynie elementy owijające wokół nich. Było to prawie na pewno zrobione celowo, aby uniemożliwić użytkownikom złamanie logiki profilowania użytkownika, która umożliwia nowe pole wyboru wolne od captcha. Możliwe, że Google mógłby zaimplementować ograniczony interfejs API motywów niestandardowych, być może umożliwiając wybór niestandardowych kolorów dla istniejących elementów, ale nie spodziewałbym się, że Google zaimplementuje pełne style CSS.