Яндекс капча Smart Captcha

Мы получили множество сообщений о том, что Яндекс опубликовал новую, ни на что не похожую, как и всё, что делает Яндекс, капчу "Я не робот", которая самим Яндексом названа Smart Captcha.
Почитать о ней можно на официальной странице: Smart Captcha.

Поначалу, конечно, мы испугались: Яндекс заставит отрабатывать JS, проверяя на какой странице он воспроизводится а значит придётся эту капчу отдавать в десктопные боты работников, подменяя заголовки браузера и контент страницы, как это происходит с ReCaptcah Enterprise или Arkose Labs.

Мы долго надеялись что это очередной временный эксперимент Яндекса и откладывали разбор на потом. Но сейчас вечер пятницы и капча всё ещё не пропала. Штош. Начинаем исследование!

яндекс капчаяндекс капча

Делаем несколько подряд запросов в Яндекс, получаем капчу, смотрим в код страницы:
яндекс капчаяндекс капча

Так. По коду - при клике на чекбокс у нас отправится POST на /checkcaptcha, содержащий параметры: key, rdata, d, k.
Ок, делаем из консоли этот запрос и... Гм. И всё. В ответ мы получили результаты поиска.

яндекс капчаяндекс капча

Т.е. всё, что нам нужно сделать, это:

  1. При попадании на страницу https://yandex.ru/showcaptcha распарсить ее и вытащить данные формы
  2. Отправить запрос к https://yandex.ru/checkcaptcha с данными формы
  3. Решить обычную капчу, если Яндекс вам ее покажет

Дальнейшие тесты показали, что после поста в /checkcaptcha иногда можно получить классическую капчу Яндекс поиска (в рукапче мы её называем Яндекс V2):

яндекс капчаяндекс капча

Мы запросили комментарий у кота анонимного неработника яндекса, типа какой смысл в этой капче, вот его ответ:
яндекс капчаяндекс капча

Шутки-шутками, а Яндекс не останавливается в работе над капчей и начал что-то подозревать. По всей видимости, вскоре они при прохождении этой "Smart"-капчи будут полноценно анализировать профиль пользователя, и на основе анализа устанавливать сложность задачи (меня не покидает ощущение дежавю, где-то я эти принципы уже встречал).

30.03.2023">30.03.2023">Обновлено:

  1. Яндекс некоторое время назад презентовал Yandex Smart Captcha, которую можно использовать на сторонних сайтах. Мы её, конечно, решаем. Вот API: https://rucaptcha.com/api-docs#yandex

  2. На всех сервисах Яндекса продолжает использоваться заглушка, имитирующая Yandex Smart Captcha, только немного изменилась форма и поля стали пустыми, но всё работает как описано в данной статье.