Recaptcha v3 как работает
Перейти к содержимому

Recaptcha v3 как работает

  • автор:

ReCAPTCHA v3. Или как убить свой проект

Я знаю, что каждого из вас задолбали эти квадратики со светофорами. Все мы успокаивали себя мыслью, что когда-нибудь разрабы рекапчи все-таки вернутся в адекватность, возьмут такие, подумают чем там у них есть и как оптимизируют систему..

Здрасьте, знакомьтесь кто еще не знаком: reCAPTCHA v3!

Да, базара ноль. Светофоры из неë убрали.. беда в том, что из неë вообще всë убрали.

Пару слов, для не совсем знающих, что это вообще и куда.

ReCAPTCHA v2 нам всем хорошо знакома. Она сейчас повсюду. Когда вы клацаете в родной квадратик «Я не робот» — она сканирует вашу активность. И если появляется сомнения, что вы не робот — выдает картиночки, которые вам надо повыбирать. Дает, так сказать, возможность реабилитироваться.

В reCAPTCHA v3 же вообще ничего нажимать не надо. На странице еë вообще никак не видно. Она абсолютно автоматическая. Точно так же сканирует-оценивает тебя и если ей что-то не нравится, то всё. Просто тупо не дает тебе ничего сделать.

Т.е. вспомни все случаи когда v2 выдавала картиночки. Вот v3 — во всех этих случаях просто перекрывала бы кислород: «Проверка не пройдена». Досвидули. И ничë ты не сделаешь. Просто неть и всë. Выход там.

По заверениям балаболов маркетологов, v3 лучше справляется со спамом и всяким зловредом. Не спорю, возможно. Но вместе с тем она отсеивает и живой трафик. Причем отсеивает его куда лучше, чем роботный. Есть там пара лазеек для роботов (только тссс). Отсеивает живых людей, готовых тебе заплатить. И за которых ты, между прочим, сам уже заплатил.

И вот сидишь ты такой, удивляешься: Бабосов вроде вложили, трафик купили. Вроде и посещения есть. И на нужной кнопке даже задерживаются.. а звонков нет.. А по кочану. ReCAPTCHA v3 не пускает. И всë. Зато без спама.

И ладно, хрен с ними со всякими вшивыми лендингами. Не хочет хозяин зарабатывать — пускай как хочет.

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

Я знаю, что сейчас балаболы представители компании призовутся и расскажут нам, что её можно настроить и вообще всë очень радостно и полезно. Но давайте по чесному. Если делать паранойю минимум, то:

  1. Теряется смысл. Роботность обратно увеличивается.
  2. А часть живых людей всë так же заë..вается. При любом раскладе. Причем заë..вается именно самая активная часть — которая в интернете работает. Те кому капча постоянно выпадает. Т.е. вот мы с вами.

Да я знаю, что v2 легко обходится. Но это не повод закрывать свой сервис от живых людей!

Админы, если вас так заспамили, если v2 не справляется — на свете есть куча современных капч, в которых для прохождения, необходимо проявить человечность и знание языка (чтобы индусы не разгадывали). Либо которые технически сложно передать этим индусам. К примеру, решить какую-то простую логическую задачу или выполнить какие-то четкие действия. Опять же рекламировать их не буду. В Гугле всë есть.

Так же щас набегут умники, которые будут рассказывать что сам дурак. Что можно то-то сделать, другое сделать, текст не копипастить, браузер сменить, данные удалить, телефон выкинуть.. Нет, дорогие. Сервис должен работать нормально. Не должен посетитель е..аться с бубнами.

В конце принято говорить, что дело ваше, решать вам и т.п.

Я скажу иначе: Если ты создал сайт или софт. Любой. То ты создал нечто социальное. На тебя люди смотрят. И если ты этих людей посылаешь на х..й в тот момент, когда они пытаются с тобой связаться или дать тебе денег, то по итогу сам понимаешь, кто куда идет. А люди отворачиваются в сторону более адекватных сервисов.

Если не хочешь разориться — не используй reCAPTCHA v3!

Считай это личной просьбой.

Третья версия reCAPTCHA срабатывает в фоне незаметно для пользователей

В мае этого года на конференции конференции Google I/O 2018 представили третью версия технологии reCAPTCHA — reCAPTCHA v3 (бета). Как известно, это самая популярная система типа CAPTCHA, которая создана для блокировки ботов, то есть автоматизированных действий на разных сервисах.

Систему критиковали за эксплуатацию бесплатного человеческого труда (в случае первой версии, которую Google использовала для оцифровки книг), за осложнение жизни людям с нарушениями зрения и другими болезнями вроде дислексии. Ещё reCAPTCHA критикуют за излишнюю сложность: людям трудно или невозможно правильно ответить на вопрос: тест становится просто абсурдным. На иллюстрации слева показы несколько примеров с первой версии reCAPTCHA. Ситуация не слишком улучшилась с выпуском второй версии (где нужно выбрать картинки, содержащие указанный объект).

Но третья версия — совершенно другое дело. Она точно никому не помешает, потому что работает незаметно для пользователей, используя методы поведенческого анализа.

Сначала немного истории. Первая версия reCAPTCHA появилась в далёком 2007 году и служила благой цели: одновременно с блокировкой спама и ботов она ещё помогала в оцифровке книг. К 2011 году с её помощью уточнялись результаты OCR в оцифровке архивов газеты The New York Times (более 13 млн статей с 1851 года) и книг Google Books.

С 2012 года в систему добавили фрагменты фотографий домов из сервиса Google Street View. Примерно с 2013 года Google начала применять поведенческий анализ действий пользователя в браузере (advanced risk analysis), а в 2014 году была реализована вторая версия системы, где нужно было выбрать несколько «правильных» картинок из набора девяти изображений, но при этом появилась возможность пройти тест в один клик. Если действия были похожи на человека, то пользователь проходил тест без решения каких-либо задач вообще: просто достаточно нажать кнопку «Я не робот» (так называемая NoCAPTCHA). Если действия похожи на бота — ему давали усложнённый тест с распознаванием объектов на изображениях.

Здесь проблема была в том, что кроме поведенческого анализа проверялись ещё куки на компьютере — и NoCAPTCHA была практически недоступна для браузеров в анонимном режиме или тех, кто чистит куки по окончании сессии.

Третья версия

Презентация третьей версии системы на конференции Google I/O 2018

В третьей версии reCAPTCHA усовершенствован поведенческий анализ (или слежка Google за пользователями, если кто-то представляет это в таком свете), то есть та самая вышеупомянутая система advanced risk analysis, продвинутого анализа риска.

Теперь система работает «в фоне» и незаметно для пользователей. Достаточно загрузить вместе со страницей библиотеку reCAPTCHA и запустить grecaptcha.execute в определённый момент или сразу в момент загрузки страницы. И это всё. Пользователь ничего не замечает — а вы через через JavaScript API получите с сервера reCAPTCHA оценку этого пользователя на основании его взаимодействия с сайтом и других параметров.

   

Есть предположения, что кроме движения курсора мыши, система начала отслеживать и другие параметры, такие как нажатия мыши. Об этом можно только догадываться. Никакой информации о внутренней работе системы Google на даёт, чтобы не помогать спамерам и владельцам ботов.

С точки зрения веб-мастера, может быть, главное отличие третьей версии — что по запросу через API сервер reCAPTCHA выдаёт не бинарное значение, а оценку в диапазоне от 0.0 (вероятный бот) до 1.0 (вероятный человек) для данного конкретного запроса. Ответ присылается в формате JSON:

Как видно из ответа сервера, в reCAPTCHA v3 представлена новая концепция «действий» (actions). Если определить разные названия действий в разных местах сайта, то система как бы начнёт «подстраиваться» под разные нужды: станет адаптивной (adaptive risk analysis).

Другими словами, владелец сайта сам выбирает «уровень отсечения» и какие действия предпринимать для пользователей выше или ниже этого уровня на разных страницах. По умолчанию уровень установлен в 0.5. Например, на главной странице рекомендуется блокировать только явные скраперы (скажем, только 0.0). На форме авторизации можно фильтровать всех, кто ниже 0.5, предлагая им двухфакторную авторизацию или верификацию почтового адреса, чтобы защититься от брутфорс-атак. Теперь проверку можно запускать несколько раз на одной странице, в нужные моменты времени и незаметно для пользователя.

Чтобы принять участие в бета-тестировании третьей версии системы, необходимо зарегистрировать на этой странице.

  • NoCAPTCHA
  • ReCAPTCHA
  • поведенческий анализ
  • анализ рисков
  • Блог компании GlobalSign
  • Информационная безопасность
  • Веб-разработка

Що таке reCAPTCHA v3 і як її встановити на сайт

У 2018 році на конференції Google представили третю reCAPTCHA.

CAPTCHA створена для блокування ботів, авто дій на сайтах і сервісах.

Історія про reCAPTCHA

До reCAPTCHA 3 було ще кілька версій, які були недосконалими.

У першій же версії reCAPTCHA, яка з’явилася в 2007 році, для введення капчі Google потрібно ввести потрібні символи з зображення, дана система допомагала в оцифрування книг і журналів.

Друга версія reCAPTCHA v2 з 2012 року відрізнялася вибором потрібного зображення із запропонованих, система брала дані з сервісу для перегляду вулиць від Google і вже з 2014 використовувався поведінковий аналіз, за допомогою якого капчу можна було пройти за один клік, якщо система думала що користувач бот — то давалася складне завдання з 9 картинок.

Третю версію reCAPTCHA v3 зробили автоматизованої за рахунок аналізу поведінкових факторів користувачів на сайті за допомогою системи advanced risk analysis.

Реєстрація reCAPTCHA v3 в кабінеті

Для того, щоб зареєструвати reCAPTCHA v3 у Вас повинен бути створений Google аккаунт. Якщо його немає, то перейдіть за посиланням і створіть акаунт. Якщо у вас є акаунт:

  1. Потрібно перейти на сервіс reCAPTCHA v3 https://www.google.com/recaptcha/intro/v3.html
  2. На сторінці сервісу потрібно перейти в Admin console
    1. У вікні реєстрації сайту потрібно заповнити всі поля, а саме:
    1. Ярлик — пишемо назву сайту, щоб в консолі його можна було легко знайти
    2. Вибираємо Тип reCAPTCHA — у нас на вибір 2 версії, нас цікавить зараз V3
    3. Ввести домен сайту в форматі site.com (без протоколу http або https)
    4. Приймаємо умови користування
    5. натискаємо ВІДПРАВИТИ
    6. Далі у нас відкривається вікно з ключами, потрібно скопіювати ключі сайту і відправити розробнику — потрібно обов’язково вказати, де секретний ключ, а де ключ сайту
    1. Якщо натиснути «Перейти в google аналітику» Ви потрапите в консоль, де буде відображатися інформація з Вашого сайту, кількість спаму який заблокувала капча, нижче на скріншоті видно як виглядає консоль, якщо на сайті ще не додана reCAPTCHA v3

    Висновок з приводу reCAPTCHA v3

    Дана капча дуже зручна і проста в інтеграції на сайт. Користувачам більше не потрібно вибирати застарілі картинки, і лояльність користувачів до сайту значно збільшитися, часто через те що кілька разів користувач неправильно вводить капчу, він залишає сайт.

    Через те, що інтеграція стала гнучкою, reCAPTCHA встановлюється на сайт безліччю способів.

    Для користувачів, у яких сайти розроблені на шаблонних CMS, продаються плагіни для інтеграції reCAPTCHA v3, установка не займе багато часу. Але власникам потужних сайтів на framework, знадобиться допомога розробників.

    Как установить reCAPTCHA V3?

    Как установить reCAPTCHA V3?

    И так, что же такое reCAPTCHA v3? reCAPTCHA v3 возвращает оценку для каждого запроса без действия пользователя. Оценка основана на взаимодействии с вашим сайтом и позволяет выполнять мелкомасштабные действия. Для того, чтобы протестировать эту нейронную сеть, необходимо сначала зарегистрировать здесь ключ reCAPTCHA v3. Зарегистрировать ключ reCAPTCHA v3

      
    1. Загрузите JavaScript api с помощью публичного ключа
    2. Вызовите функцию grecaptcha.execute при совершении действия или при загрузке страницы
    3. Отправьте токен на ваш сервер, чтобы его проверить

    Советы Функция grecaptcha.ready () будет запускать вашу функцию сразу после загрузки библиотеки reCAPTCHA. Чтобы избежать условий с помощью api.js, либо включите api.js перед вашими сценариями, которые вызывают grecaptcha, либо вы можете продолжать использовать обратный вызов onload, определенный с помощью API v2.

    Размещение на вашем сайте reCAPTCHA v3 никогда не перенаправляет ваших пользователей, поэтому вы можете запускать его, когда захотите. reCAPTCHA работает лучше всего, когда у него больше всего контекста о взаимодействии с вашим сайтом, который возникает из-за того, что он видит как законное, так и плохое поведение. По этой причине мы рекомендуем включать проверку reCAPTCHA в формах или действиях, а также на фоне страниц для аналитики.

    Примечание. Вы можете подключить reCAPTCHA столько раз, сколько захотите, с разными действиями на одной странице.

    Интерпретация оценки reCAPTCHA v3 возвращает оценку (1.0, скорее всего, хорошее взаимодействие, 0.0 очень плохо, вероятно, бот). На основе оценки вы можете принимать переменные действия в контексте вашего сайта.

    Чтобы выбрать соответствующие пороговые значения, мы рекомендуем посмотреть ваш трафик в консоли администратора. Поскольку reCAPTCHA v3 никогда не прерывает поток пользователей, вы можете сначала запустить reCAPTCHA без принятия мер, а затем установить лимиты, как только вы увидите распределение баллов вашего сайта. Для начальных испытаний вы можете установить порог 0,5.

    Действия reCAPTCHA v3 вводит новую концепцию действия. Когда вы указываете имя действия в каждом месте, вы подключаете reCAPTCHA и две новые функции:

    1. Подробное разбиение данных для вашей первой десятки действий в консоли администратора
    2. Адаптивный анализ рисков, основанный на контексте действия (поведение, связанное с нарушением правил, может варьироваться)
    3. Важно отметить, что когда вы проверяете ответ reCAPTCHA, вы также должны убедиться, что имя действия совпадает с именем, которое вы ожидаете.
      

    Примечание: действия могут содержать только буквенно-цифровые символы и косые черты и не должны быть специфичными для пользователя.

     class ReCaptcha < private static $_signupUrl = "https://www.google.com/recaptcha/admin"; private static $_siteVerifyUrl = "https://www.google.com/recaptcha/api/siteverify?"; private $_secret; private static $_version = "php_1.0"; /** * Constructor. * * @param string $secret shared secret between site and ReCAPTCHA server. */ function ReCaptcha($secret) < if ($secret == null || $secret == "") < die("To use reCAPTCHA you must get an API key from " . self::$_signupUrl . ""); > $this->_secret=$secret; > /** * Encodes the given data into a query string format. * * @param array $data array of string elements to be encoded. * * @return string - encoded request. */ private function _encodeQS($data) < $req = ""; foreach ($data as $key =>$value) < $req .= $key . '=' . urlencode(stripslashes($value)) . '&'; >// Cut the last '&' $req=substr($req, 0, strlen($req)-1); return $req; > /** * Submits an HTTP GET to a reCAPTCHA server. * * @param string $path url path to recaptcha server. * @param array $data array of parameters to be sent. * * @return array response */ private function _submitHTTPGet($path, $data) < $req = $this->_encodeQS($data); $response = file_get_contents($path . $req); return $response; > /** * Calls the reCAPTCHA siteverify API to verify whether the user passes * CAPTCHA test. * * @param string $remoteIp IP address of end user. * @param string $response response string from recaptcha verification. * * @return ReCaptchaResponse */ public function verifyResponse($remoteIp, $response) < // Discard empty solution submissions if ($response == null || strlen($response) == 0) < $recaptchaResponse = new ReCaptchaResponse(); $recaptchaResponse->success = false; $recaptchaResponse->errorCodes = 'missing-input'; return $recaptchaResponse; > $getResponse = $this->_submitHttpGet( self::$_siteVerifyUrl, array ( 'secret' => $this->_secret, 'remoteip' => $remoteIp, 'v' => self::$_version, 'response' => $response ) ); $answers = json_decode($getResponse, true); $recaptchaResponse = new ReCaptchaResponse(); if (trim($answers ['success']) == true) < $recaptchaResponse->success = true; > else < $recaptchaResponse->success = false; $recaptchaResponse->errorCodes = $answers ['error-codes']; > return $recaptchaResponse; > > ?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *