Решить ReCapcha v3
Last updated
Last updated
Элемент, решающий капчу формата ReCapcha v3
Свойство | Тип | Описание |
---|---|---|
Ключ API | String | Ключ API |
URL API | String | URL API |
URL | String | URL сайта капчи |
Ключ сайта | String | Ключ капчи reCapcha |
Точность | Необходимая точность | |
Тайм-аут | Int32 | Тайм-аут |
Результат | String | Результат разбора капчи |
reCaptcha v3
reCAPTCHA V3 - это новейший вид капчи от Google, который основан на рейтинге "человечности" пользователя и не требует от пользователя выполнения каких-либо заданий.
Во многом новый вид капчи похож на reCAPTCHA V2, т.е. основной принцип остался тем же - пользователь получает от API reCAPTCHA токен, который отправляется в POST-запросе к сайту, а сайт верифицирует токен через API reCAPTCHA.
НО при верификации токена API reCAPTCHA теперь возвращает рейтинг "человечности" пользователя - score - число от 0.1 до 0.9. Получив это значение, сайт решает, как обрабатывать запрос.
Кроме того, появился новый параметр action, который позволяет по разному обрабатывать различные действия пользователя на сайте. При верификации токена API reCAPTCHA вернет имя действия, которое выполнил пользователь.
Как решать reCAPTCHA V3:
В первую очередь нужно убедиться, что на сайте действительно используется reCAPTCHA V3.
Основные признаки V3:\
не видна пользователю, не требует кликать по картинкам;
скрипт api.js загружается с параметром render=sitekey, например: https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE
в массиве clients конфигурационного объекта ___grecaptcha_cfg используется индекс 100000: ___grecaptcha_cfg.clients[100000]
Для решения V3 необходимо найти значения трех параметров:\
sitekey - его можно найти в html в значении параметра render при загрузке api.js, в параметре k в URI iframe, в который подгружается reCAPTCHA, либо в javscript, в вызове функции grecaptcha.execute или в конфигурационном объекте ___grecaptcha_cfg.
action - это значение нужно искать в javascript коде сайта в вызове функции grecaptcha.execute. Пример: grecaptcha.execute('6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE', {action: do_something}). Иногда найти его достаточно сложно и требуется перевернуть вверх дном все js-файлы, подгружаемые сайтом. Кроме того, можно попробовать найти значение action в конфигурационном объекте ___grecaptcha_cfg, но очень часто оно может быть не задано там, а передаваться только при вызове grecaptcha.execute - поэтому наиболее эффективный метод - просмотр javascript кода.\
pageurl - полный URL страницы, где вы хотите решить reCAPTCHA V3.
Кроме того, нужно понять, какое значение score вам требуется. Определить извне, при каком score сайт решит, что вы человек и пропустит ваш запрос, можно только экспериментально. Самый низкий рейгинг 0.1 - робот, а самый высокий 0.9 - человек. Но, многие сайты ставят пороговые значения от 0.2 до 0.5, т.к. обычный человек зачастую получает довольно низкий рейтинг.
После получения токена, нужно корректно использовать его на сайте. Лучший метод понять, как это сделать - посмотреть на то, какие запросы отправляются на сайт, когда вы работаете с ним как обычный посетитель. Большинство браузеров позволяют легко это сделать в консоли разработчика, нужная вкладка обычно называется "Network".
Токен обычно отправляется в параметрах POST-запроса, это может быть g-recaptcha-response как у reCAPTCHA V2, g-recaptcha-response-100000 или какой-либо другой параметр. Поэтому нужно внимательно просмотреть параметры запроса и найти, как именно передается токен, а затем сформировать аналогичный запрос.