Огляд:
Вибачте за відповідь поганих новин, але після дослідження та налагодження, цілком зрозуміло, що немає способу налаштувати стиль нових елементів керування reCAPTCHA. Елементи управління загорнуті в iframe
, що запобігає використанню CSS для їх стилю, а Policy-Origin Policy не дозволяє JavaScript отримувати доступ до вмісту, виключаючи навіть хакітичне рішення.
Чому немає налаштування API ?:
На відміну від reCAPTCHA API версії 1.0 , в API версії 2.0 немає параметрів налаштування . Якщо ми розглянемо, як працює цей новий API, не дивно, чому.
Хоча новий API reCAPTCHA може здатися простим, за цим скромним прапорцем є висока ступінь витонченості. CAPTCHA вже давно покладаються на нездатність роботів вирішувати спотворений текст. Однак нещодавно наше дослідження показало, що сьогоднішня технологія штучного інтелекту може вирішити навіть найскладніший варіант спотвореного тексту з точністю 99,8%. Таким чином, спотворений текст сам по собі вже не є надійним тестом.
Щоб протистояти цьому, минулого року ми розробили розширений аналіз аналізу ризиків для reCAPTCHA, який активно розглядає всю взаємодію користувача з CAPTCHA - до, під час і після - для визначення того, чи є цей користувач людиною. Це дає нам змогу менше покладатися на введення спотвореного тексту та, в свою чергу, пропонувати користувачам кращий досвід. Про це ми говорили в нашій День закоханих на початку цього року.
Якщо вам вдалося безпосередньо маніпулювати стилями елементів керування, ви можете легко втручатися в логіку профілювання користувача, яка робить можливим новий reCAPTCHA.
Що про власну тему ?:
Тепер новий API пропонує theme
варіант , за допомогою якого ви можете вибрати попередньо задану тему, наприклад, light
та dark
. Однак зараз немає способу створити власну тему. Якщо ми перевіримо iframe
, знайдемо theme
ім'я, передане в рядку запиту src
атрибута. Ця URL-адреса виглядає приблизно так.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Цей параметр визначає, яке ім'я класу CSS використовується для елемента обгортки в iframe
і визначає задану тему для використання.
Риття через зменшену джерело, я виявив , що є на насправді 4 дійсних значень теми, які більше , ніж 2 , перераховані в документації, але default
і standard
таке ж , як light
.
Тут ми можемо побачити код, який вибирає назву класу з цього об’єкта.
Немає коду для спеціальної теми, і якщо theme
буде вказано якесь інше значення, воно використовуватиме цю standard
тему.
На завершення:
В даний час не існує можливості повністю стилізувати нові елементи reCAPTCHA, iframe
можна лише стилізувати елементи обгортки навколо балончика. Це майже напевно було зроблено навмисно, щоб не допустити порушення користувачами логіки профілювання користувача, яка робить можливим новий прапорець без капташу. Цілком можливо, що Google може реалізувати обмежений інтерфейс API для власних тем, можливо, дозволяючи вибирати спеціальні кольори для існуючих елементів, але я не очікував, що Google реалізує повний CSS-стиль.