Яндекс капча Smart Captcha
Мы получили множество сообщений о том, что Яндекс опубликовал новую, ни на что не похожую, как и всё, что делает Яндекс, капчу "Я не робот", которая самим Яндексом названа Smart Captcha.
Почитать о ней можно на официальной странице: Smart Captcha.
Поначалу, конечно, мы испугались: Яндекс заставит отрабатывать JS, проверяя на какой странице он воспроизводится а значит придётся эту капчу отдавать в десктопные боты работников, подменяя заголовки браузера и контент страницы, как это происходит с ReCaptcah Enterprise или Arkose Labs.
Мы долго надеялись что это очередной временный эксперимент Яндекса и откладывали разбор на потом. Но сейчас вечер пятницы и капча всё ещё не пропала. Штош. Начинаем исследование!
яндекс капча
Делаем несколько подряд запросов в Яндекс, получаем капчу, смотрим в код страницы:яндекс капча
Так. По коду - при клике на чекбокс у нас отправится POST на /checkcaptcha, содержащий параметры: key, rdata, d, k.
Ок, делаем из консоли этот запрос и... Гм. И всё. В ответ мы получили результаты поиска.
яндекс капча
Т.е. всё, что нам нужно сделать, это:
- При попадании на страницу https://yandex.ru/showcaptcha распарсить ее и вытащить данные формы
- Отправить запрос к https://yandex.ru/checkcaptcha с данными формы
- Решить обычную капчу, если Яндекс вам ее покажет
Дальнейшие тесты показали, что после поста в /checkcaptcha иногда можно получить классическую капчу Яндекс поиска (в рукапче мы её называем Яндекс V2):
яндекс капча
Мы запросили комментарий у кота анонимного неработника яндекса, типа какой смысл в этой капче, вот его ответ:яндекс капча
Шутки-шутками, а Яндекс не останавливается в работе над капчей и начал что-то подозревать. По всей видимости, вскоре они при прохождении этой "Smart"-капчи будут полноценно анализировать профиль пользователя, и на основе анализа устанавливать сложность задачи (меня не покидает ощущение дежавю, где-то я эти принципы уже встречал).
30.03.2023">30.03.2023">Обновлено:
Яндекс некоторое время назад презентовал Yandex Smart Captcha, которую можно использовать на сторонних сайтах. Мы её, конечно, решаем. Вот API: https://rucaptcha.com/api-docs#yandex
На всех сервисах Яндекса продолжает использоваться заглушка, имитирующая Yandex Smart Captcha, только немного изменилась форма и поля стали пустыми, но всё работает как описано в данной статье.