В мае 2018 года, компания Google представила новую версию ReCaptcha. Теперь система работает в «фоне» и не требует никаких действий от пользователя.
Когда на сайте используется ReCaptcha v3, внизу страницы появляется такая иконка:
Более подробная информация здесь.
В программе ZennoPoster, начиная с версии 5.25.0.0, появилась возможность отправлять на распознавание ReCaptcha3.
В программе CapMonster2, начиная с версии 2.10.8.6, появилась возможность распознавать новую ReCaptcha3.
Как это работает
Владелец сайта встраивает специальный код на страницу, который обрабатывает данные о пользователе и возвращает токен. Далее, с помощью переданного токена, происходит верификация пользователя.
Пример использования ReCaptcha v3 на странице:
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script> <script> grecaptcha.ready(function() { grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) { //верификация пользователя }); }); </script>
Для отправки ReCaptcha на распознавание в CapMonster2, Вам необходимо сформировать запрос, который будет включать URL и sitekey страницы, а также action. В примере, в качестве параметра action, указан 'homepage'.
CapMonster2 присылает в ответ токен, который можно использовать для верификации.
Использование в ZennoPoster
В версии Для отправки каптч ReCaptcha v3 из ZennoPoster Вы можете использовать специальный кубик Распознать ReCaptcha:
Также в кубике можно изменять параметры каптчи: action (Пример использования выше) и min score. Min score в версии CapMonster2 2.10.8.6 не поддерживается.
Как и в ReCaptcha2, ReCaptcha3 можно распознавать через Sitekey, указав SiteKey и URL страницы:
Поддерживаемые модули
Разгадывание ReCaptcha поддерживается через модули CapMonster2 и RuCaptcha.
С API RuCaptcha более подробно Вы можете ознакомиться здесь.
Работа с токеном
После получения токена необходимо передать его в функцию верификации. Так как верификация может произойти в любой момент времени, нужно перехватить запрос на получение токена и в ответе подменить его на полученный токен из CapMonster2.
Для подмены токена Вы можете использовать подготовленный нами сниппет:
var sitekey = //SiteKey string newToken = //New Token string replaceRegex = @"(?<=\[""rresp"","").*?(?="")"; instance.ChangeResponse("https://www.google.com/recaptcha/api2/reload\\?k="+sitekey, new List<string> {replaceRegex}, new List<string> {newToken}, false);
Примечание
Использование SiteKey в сниппете не является обязательным. Но нужно учитывать, что без использования SiteKey будут перехватываться запросы ото всех каптч, включая ReCaptcha2.
Если это не является проблемой, Вы можете использовать такую версию сниппета:
string newToken = //New Token string replaceRegex = @"(?<=\[""rresp"","").*?(?="")"; instance.ChangeResponse("https://www.google.com/recaptcha/api2/reload", new List<string> {replaceRegex}, new List<string> {newToken}, false);