Как обойти Turnstile CAPTCHA с помощью сервиса распознавания капчи 2капча - пошаговая инструкция
Cloudflare представила Turnstile, свою новую технологию, которая заменяет традиционные CAPTCHA, в сентябре 2022 года. Это решение разработано как альтернатива, предлагающая пользователям более удобный и конфиденциальный способ верификации без необходимости ввода символов или решения визуальных головоломок. Основная идея Turnstile заключается в использовании неинтерактивных JavaScript-задач для сбора информации о поведении и окружении пользователя, что позволяет адаптировать сложность проверки и упростить процесс для обычных пользователей.
Turnstile использует ротационные наборы проверок, адаптируя их сложность в зависимости от поведения юзера. Система также интегрируется с Private Access Tokens в iOS и macOS, что позволяет проводить проверку без сбора и хранения данных устройств пользователей. Это обеспечивает дополнительный уровень защиты конфиденциальности, в то время как Cloudflare утверждает, что время, затрачиваемое пользователями на прохождение проверок, сократилось с 32 секунд до примерно одной секунды.
Одним из ключевых фактов, отличающих Turnstile от других решений, является его доступность для любого разработчика, независимо от того, является ли он клиентом Cloudflare или нет. Это решение доступно бесплатно, и его можно легко интегрировать в любой сайт, используя предоставляемые Cloudflare инструкции и код.
Дополнительно, Cloudflare работает над плагинами для популярных платформ, таких как WordPress, чтобы упростить развертывание Turnstile. Эти усилия могут со временем убедить администраторов сайтов в преимуществах использования Turnstile вместо существующих решений CAPTCHA.
Переход к системе Turnstile от Cloudflare может затруднить работу специалистов, которые работают с большими объемами данных (тестировщики, парсеры и тп) поскольку она делает автоматическую обработку веб-форм значительно сложнее. Turnstile использует адаптивные проверки, основанные на поведении пользователя, что отличается от простого распознавания символов в традиционных CAPTCHA.
Это нововведение требует от разработчиков адаптации их инструментов и методов, чтобы справляться с более сложными задачами проверки. Также, может потребоваться применение более продвинутых технологий, таких как машинное обучение и анализ поведения, что может увеличить стоимость и сложность поддержки систем.
Исходя из вышеописанного, на мой взгляд, наиболее предпочтительным вариантом автоматизации обхода капчи будет использование сервиса распознавания капчи, который использует синергию человеческого труда и автоматических методов. Под описанные параметры идеально подхоит 2капча, которая предлагает уникальное решение (на самом деле на рынке это уже давно не уникально), где реальные люди решают задачи, которые ставит перед ними Turnstile, позволяя автоматизировать процесс верификации в приложениях и на сайтах.
Для распознавания Turnstile с помощью API сервиса 2Captcha, необходимо создать задачу (createTask) с параметрами конкретной капчи Turnstile. Существует два основных сценария использования: для стандартной капчи и для страницы Cloudflare с капчей. В обоих случаях, ключевыми параметрами являются sitekey, URL страницы, и, в случае страницы вызова, дополнительные параметры как action, cData, и chlPageData.
Стандартная Turnstile CAPTCHA - используется на страницах, где капча Turnstile встроена напрямую. Задача создаётся с параметром sitekey и URL страницы.
Cloudflare Challenge Page - применяется на страницах Cloudflare, которые временно блокируют доступ. Здесь, кроме sitekey и URL, требуется передать дополнительные параметры, такие как action, cData, и chlPageData, которые помогают определить контекст вызова и необходимые действия для преодоления проверки.
Для обоих сценариев после решения капчи сервис возвращает токен, который используется для подтверждения действий на сайте.
Теперь давайте наглядно продемонстрируем, как работает решение Turnstile CAPTCHA на примере демо-страницы 2капча, будем использовать Node.js
Создадим папку и назовем ее Turnstile
Необходимо все подготовить, нам потребуются следующие модули - axios и dotenv
Для установки указанных модулей нужно выполнить следующую команду
Создадим файл .env и добавим туда наш API-ключ от сервиса 2Captcha, который можно найти на главной странице, предварительно залогинившись в сервисе.
В файле .env будет всего одна строка
Замените YOUR_2CAPTCHA_API_KEY на ваш действительный API-ключ.
Создадим в папке файл index.js со следующим содержимым
Теперь вкратце, как работает указанный код
Сперва происходит импорт модулей
axios — для отправки HTTP-запросов.
dotenv — для работы с переменными окружения.
Следующим шагом, происходит настройка переменных
YOUR_API_KEY — API-ключ для 2Captcha.
TURNSTILE_SITE_KEY — site key для CAPTCHA.
TURNSTILE_URL — URL страницы с CAPTCHA.
В нашем случае подразумевается что параметр SiteKey и URL мы подставляем в код самостоятельно, предварительно найдя его на странице с капчей.
После того, как переменные настроены осуществляется решение капчи
solveCaptcha отправляет запрос на решение CAPTCHA.
Возвращает captchaId при успешном запросе.
Далее происходит получение решения (в нашем случае это токен)
getSolution использует captchaId для получения токена решения.
Применяет ожидание и экспоненциальное ожидание для увеличения шансов на успешное решение.
И последним шагом в коде предусмотрено поле, куда вы можете добавить свой вариант, куда отправлять полученный токен
Так как на этой демо странице используется поле input, значение которого можно поменять следующим образом: document.querySelector('[name="cf-turnstile-response"]').value = 'TOKEN';
Мы вставим токен вручную через консоль браузера, чтобы проверить корректность нашего метода.
В видео весь процесс показан максимально емко и понятно, для наглядности можете использовать его.