Recaptcha v3 или v2 что лучше для сайта

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

Recaptcha v3 или v2 что лучше для сайта. image loader. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-image loader. картинка Recaptcha v3 или v2 что лучше для сайта. картинка image loaderВ мае этого года на конференции конференции 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). Если действия похожи на бота — ему давали усложнённый тест с распознаванием объектов на изображениях.

Recaptcha v3 или v2 что лучше для сайта. image loader. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-image loader. картинка Recaptcha v3 или v2 что лучше для сайта. картинка image loader
NoCAPTCHA

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

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

Recaptcha v3 или v2 что лучше для сайта. . Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-. картинка Recaptcha v3 или v2 что лучше для сайта. картинка
Презентация третьей версии системы на конференции 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, предлагая им двухфакторную авторизацию или верификацию почтового адреса, чтобы защититься от брутфорс-атак. Теперь проверку можно запускать несколько раз на одной странице, в нужные моменты времени и незаметно для пользователя.

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

Источник

Что такое капча? В чем разница между ReCaptcha v1, v2 и v3?

Капчи есть везде, от веб-сайтов электронной коммерции до порталов бронирования билетов. Бросая вызов вам доказать, что вы не робот на основе различных тестов, Captcha помогли контролировать спам-трафик в Интернете.

Благодаря эффективности теста популярность Captcha выросла, и миллионы людей во всем мире решали Captcha для создания электронных писем или доступа к необходимому контенту. По словам доктора фон Ана, в 2006 году люди ежедневно решали 200 миллионов капч.

Recaptcha: Captcha для цифровой эпохи

Хотя Captcha помогала Интернету предотвращать атаки ботов, человеческие усилия по решению этих головоломок не использовались эффективно. Так родилась рекапча. Вместо использования случайно сгенерированных слов Рекапча использовал слова из старых книг, которые переводились в цифровую форму и не могли быть поняты компьютерами.

Recaptcha работала, показывая своим пользователям пару слов, оба из которых были из книги, оцифрованной. Одно из показанных пользователю слов может быть понято компьютером с помощью программного обеспечения оптического распознавания символов (OCR). Напротив, другое слово не может быть идентифицировано с помощью того же самого. Слово, которое может быть идентифицировано с помощью OCR, известно как контрольное слово и используется для проверки правильности ответа на неопознанное слово и проверки того, что человек является человеком.

Это было отличным нововведением, и в 2009 году Google купил Recaptcha. Он использовал Recaptcha для архивирования книг в архивах книг Google. Она также использовался Google для улучшения просмотра улиц Google, помогая картам Google эффективно отображать адреса в Картах Google.

Все это было здорово, но с развитием искусственного интеллекта и алгоритмов глубокого обучения компьютеры догоняли людей, и они могли разгадывать капчи с большой эффективностью. Фактически, данные из Captcha использовались для обучения сверхточных нейронных сетей с точностью 99,8%. Это было проблемой, потому что компьютеры могли решать капчи с текстовыми изображениями, и требовалось что-то новое.

Recaptcha V2: проще для людей, но не для ботов

Кажется странным, правда? Раньше вам приходилось идентифицировать текст с линиями и плохим фоном, а теперь все, что вам нужно сделать, это установить флажок, и вы не будете считаться роботом. Это связано с тем, что, когда вы устанавливаете флажок, Google использует предварительный анализ рисков на основе вашей активности в Интернете, чтобы определить, являетесь ли вы ботом или нет.

Recaptcha V2 также поставляется с невидимой версией, в которой пользователю не нужно устанавливать флажок, вместо этого скрипт Recaptcha запускается при нажатии кнопки на веб-сайте.

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

Хотя Recaptcha V2 был лучше, чем Recaptcha, конечному пользователю это доставляло некоторые неудобства. Если по какой-то причине анализ рисков Google решил, что вы бот, вам нужно было найти светофор в наборе изображений или т.п.

Идеальна ли Recaptcha V3?

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

Для создания этой оценки Google использует адаптивный анализ рисков и, благодаря адаптивному характеру алгоритма, изучает, как люди взаимодействуют с конкретным веб-сайтом, и соответственно присваивает оценки. Из-за этого ботам сложно имитировать людей.

При этом Recaptcha v3 небезупречна, и ее можно обойти с помощью обучения.

Google рекомендует веб-мастерам встраивать скрипт Recaptcha V3 на несколько страниц, чтобы Google мог лучше анализировать трафик на веб-сайте.

Используя демонстрационный веб-сайт, на котором запущен скрипт Recaptcha, вы можете увидеть свои оценки, которые генерирует скрипт. Если вы откроете сайт в обычном веб-браузере, в который вошла ваша учетная запись Google, вы получите высокий балл 0,9. С другой стороны, если вы используете VPN вместе с браузером, в котором нет вашей учетной записи Google, ваша оценка может снизиться до 0,3. Это показывает, что алгоритм может быть смещен в сторону пользователей, которые используют VPN или блокировщики рекламы для повышения конфиденциальности, давая им более низкий балл.

Google сообщил Fastcompany, что сценарий также отправляет «информацию об оборудовании и программном обеспечении, включая данные об устройствах и приложениях, обратно в Google для анализа, и что служба используется только для борьбы со спамом и злоупотреблениями».

Хотя Google утверждает, что данные, собранные с помощью Recaptcha, не используются для рекламы, он по-прежнему собирает данные от своих пользователей с помощью скриптов, работающих на заднем плане веб-сайтов.

Глядя на Recaptcha V3, можно сказать, что это палка о двух концах. Google много работал над улучшением обнаружения ботов в Интернете, создавая беспроблемный опыт для пользователей, но он собирает данные и вторгается в конфиденциальность пользователей, чтобы обеспечить такой опыт.

Источник

Использование Google reCAPTCHA v2 и v3 в одной форме

Введение

У Google появилась замечательная reCAPTCHA v3. Замечательна она тем, что освобождает пользователя от необходимости тыкать по картинкам в поисках светофоров и пожарных гидрантов, при этом вполне успешно анализирует его действия на сайте и оценивает их по шкале от 0 до 1. Чем выше балл, тем качественней наш бот выше вероятность, что пользователь реальный. Обычно выставляют порог равным 0.5.

А что делать, если хочется добра пользователям сайта, но есть у его владельца некая обеспокоенность, что не пропустит невидимая столь ценного реального пользователя, который может и ведет себя странно и подозрительно, но совсем не бот?

Что делаем

Тут обозначу основные моменты. Весь код есть по ссылке на github. достаточно переименовать файл config.example.php в config.php и поменять в нем ключи доступа на настоящие.

Для подключения необходимо получить публичные (site key) и приватные (secret key) ключи от обеих версий Google reCAPTCHA на сайте.

Добавляем на страницу скрипт, указав в параметре публичный ключ версии 3

Создаем форму, в которую помимо наших полей добавляем два скрытых для токенов, а также один блок, в который будет добавляться видимая капча. Блоку требуется задать значение атрибута «id».

Форма у нас будет отправляться по ajax. Пишем обработчик для события подтверждения формы. Тут:

— открытый который проверяет, что определена переменная grecaptcha из библиотеки Google, получает токен и записывает его в скрытое поле, после чего отправляем форму.

Отправляем ajax запрос с данными формы на сервер

Если на сервере проверка пройдена и данные формы приняты, получаем сообщение об успехе и выводим информацию об этом пользователю

Если произошла ошибка, связанная с версией 3 (не отчечает сервер или недостаточно баллов), то рендерим капчу версии 2

В функции-коллбеке setTokenV2 передается токен от второй версии капчи, его мы записываем во второе скрытое поле

В этой же функции можно сразу вызвать sendForm() или предоставить пользователю самостоятельно нажать на кнопку. На этот раз форма улетает уже с двумя токенами, при этом первым проверяется токен версии 2, на всякий случай на стороне сервера по нему тоже получаем инофрмацию от Google, и если все в порядке, возвращаем информацию об успехе в браузер, где и показывем соответстующее сообщение.

Код серверной части в файле ajax.php:

Надеюсь, кому-то пригодиться в работе, также буду рад комментариям и вопросам.

Источник

Recaptcha v3 или v2 что лучше для сайта

Хостинг и домены

VPS/VDS и серверы

Прочие услуги

Практически каждый владелец сайтов в интернете сталкивался с проблемой вредоносных ботов, которые начинают атаковать формы обратной связи, окна регистрации на сайте, комментарии под постами и так далее. Если не защитить данные объекты, то это может привести к серьезным проблема. IP-адрес сайта может попасть в спам базы, комментарии под записями на сайте могут стать рассадником вредоносных ссылок, почтовые сервера могут начать считать что ваш сайт используется для рассылки спама, что приведет к проблемам с отправкой писем с вашего почтового домена, иными словами, нормальные письма с вашего сайта начнут попадать в папку «Спам» у пользователей вашего сайта. Мы перечислили только несколько основных проблем, однако, уже по ним можно понять, что негативное воздействие ботов на сайтах необходимо пресекать.

Исторически сложилось, что самым оптимальным решением данной проблемы является ввод на сайт капчи. Самым распространенным видом капчи является reCAPTCHA от Google. В данной статье мы рассмотрим принципы работы двух актуальных на текущий момент версий этой капчи – v2 и v3.

Просим вас заметить, что в данной статье не будет идти речь о reCAPTCHA v1. Данная версия капчи не поддерживается Google с марта 2018 года.

В чем отличия reCAPTCHA v2 и v3?

Если вкратце, то v2 проверяет запросы с помощью заданий, а v3 с выполняет проверку с учетом оценок пользователя на веб-сайте.

Разберем данные версии более детально:

reCAPTCHA v2

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

Recaptcha v3 или v2 что лучше для сайта. 3774b10d66d193bffa1e1d7fc32081f3. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-3774b10d66d193bffa1e1d7fc32081f3. картинка Recaptcha v3 или v2 что лучше для сайта. картинка 3774b10d66d193bffa1e1d7fc32081f3

После того, как пользователь установит флажок, google, с помощью своих алгоритмов, проанализирует риски на основе активности данного пользователя в интернете и определит, является ли он роботом или нет. Если google решит, что пользователь вероятнее всего является человеком, то запрос пользователя обработается. Данный способ с установкой флажка также называется «NoCAPTCHA». Если система посчитает что пользователь может быть роботом, то появится окно с задачей, которую пользователю предстоит решить. Например, это может быть запрос найти все изображения с грузовиками, лодками, светофорами и другими объектами из предоставленных 9 картинок. Для ботов эта задача довольно проблематичная, поэтому данная капча является надежным вариантом для защиты вашего сайта от вредоносного воздействия. Если пользователь правильно решит задачу, то его запрос на сайте будет выполнен, либо ему откроется следующая страница, в зависимости от изначального запроса.

Recaptcha v3 или v2 что лучше для сайта. 9d1c0f305ecd584df157f6d0068ccb11. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-9d1c0f305ecd584df157f6d0068ccb11. картинка Recaptcha v3 или v2 что лучше для сайта. картинка 9d1c0f305ecd584df157f6d0068ccb11

В чем недостатки такой капчи?

Алгоритмы google могут принять обычного пользователя за подозрительного, в силу чего, посетителю вашего сайта может не понравится решение задачи капчи, вместо простого использования функционала сайта. Зачастую данные «головоломки» являются довольно сложными и для обычного человека, так как восприятие объектов у каждого человека свое и порой отличить грузовик от внедорожника для некоторых людей может быть проблемой, особенно учитывая низкое качество предоставляемых картинок.

Вторым немаловажным моментом в минусах у данной версии капчи является особенность ее работы. Для анализа поведения человека в интернете также используются куки его браузера. Если куки были очищены, либо пользователь сидит в анонимном режиме браузера (инкогнито), то с большей долей вероятности, посетитель вашего сайта в любом случае будет вынужден решать задачу капчи, то есть «NoCAPTCHA» для данных посетителей будет недоступна.

У reCAPTCHA v2 есть еще один режим работы, так называемая невидимая версия работы. В данном режиме, вместо появления окна с чекбоксом «Я не робот», система автоматически начнет проверять пользователя с помощью своих алгоритмов.

reCAPTCHA v3

Это самая новая версия reCAPTCHA, которая фактически является невидимой для обычных пользователей, или, другими словами, фоновой. В данной версии используется более сложная система продвинутого анализа риска с усовершенствованным поведенческим анализом. Теперь, скрипты на сайте анализируют поведение посетителя и ставят ему оценку от 0.0 до 1.0. Чем выше оценка поставлена посетителю вашего сайта, тем с большей вероятностью он является реальным человеком. По умолчанию данная оценка для пользователя является 0.5. Исходя из этих цифр, вы можете настраивать, какое значение оценки должно быть, чтобы клиент мог выполнить определенное действие на вашем сайте. Например, на форму входа в аккаунт вы можете задать значение 0.7, чтобы только более достоверные пользователи без проблем заходили в аккаунт. Если оценка посетителя будет ниже установленной, то система сможет запросить у пользователя двухфакторную аутентификацию или различные другие действия, которые вы зададите для определенного сценария.

Какие минусы могут быть у данного метода?

Google скрывает принципы работы своих алгоритмов, связанных с reCAPTCHA v3, поэтому как точно будет поставлена оценка в определенных моментах работы вашего сайта трудно сказать. Кроме того, есть информация, что использование VPN или блокировщиков рекламы может негативно сказываться на оценке пользователя, то есть данные пользователи могут считаться скорее ботами, чем людьми.
Также, в соответствии с пользовательским соглашением google, на вашем сайте будет висеть логотип, что сайт защищен от спама с помощью reCAPTCHA:

Recaptcha v3 или v2 что лучше для сайта. a207dfe044723a841e2bdd4e0f004b1e. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-a207dfe044723a841e2bdd4e0f004b1e. картинка Recaptcha v3 или v2 что лучше для сайта. картинка a207dfe044723a841e2bdd4e0f004b1e

Однако, данное лицензионное соглашение также допускает скрывать логотип с помощью CSS кода:

Но скрыв данный баннер, вам необходимо будет под каждой формой использующей капчу написать: «Защита от спама reCAPTCHA Конфиденциальность и Условия использования» со ссылками на соответствующие страницы Google. Подробнее про данные нюансы вы можете узнать в официальном FAQ по reCAPTCHA от google.

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

Источник

Новая reCAPTCHA от Google 3 версии: возможности и установка на сайт

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholderДоброго времени суток 🙂

С каждым годом спама в Интернете становится всё больше. Большая заслуга этого «достижения» заключается в высоком уровне развития современных информационных технологий.

Если раньше для защиты сайта от спама и автоматических атак роботов было достаточно банальной капчи с вводом незамысловатых комбинаций букв и цифр, то в последние годы с развитием технологий искусственного интеллекта и технологий OCR обход капчи в автоматическом режиме перестал быть проблемой для хакеров.

В ответ разработчики придумывают и создают капчи со всё более совершенными алгоритмами, позволяющими отличить робота от настоящего человека.

До недавнего времени эталоном капчи являлась Google reCAPTCHA v2. Однако злоумышленники нашли ключи и к ней. В то же время её алгоритм не всегда позволяет реальным пользователям пройти её с первого раза, т.к. предлагаемые задачи усложнились настолько, что не всегда понятно, что требуется сделать.

Думаю, знакомая ситуация 🙂

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

Компромиссным вариантом стала модификация данного продукта и выпуск Google reCAPTCHA v3, о которой мы сегодня и поговорим.

Особенности Google reCAPTCHA v3

При создании новой рекапчи Google решил проанализировать предыдущие версии данного продукта, а также все их преимущества и недостатки.

Если вкратце, то первая версия Google капча представляла собой текстовое поле для ввода символов с картинки, которую теоретически мог распознать только человек.

При разработке второй версии Google рекапча разработчики применили другой подход, призванный устранить главную проблему первой версии — невозможность её прохождения людям с проблемами со зрениям и дисплексией. Кроме этого, компанию критиковали за бесплатное использование человеческого труда, т.к. тексты с картинок, которые нужно было вводить для прохождения Google CAPTCHA, представляли собой не что иное, как сканы выпусков New York Times с 1851 года, которые Google использовала в своих целях.

Google reCAPTCHA v2 была лишена данного недостатка, т.к. при её прохождении учитывались поведенческие факторы, а для её разгадывания нужно было всего лишь поставить галочку в поле Я не робот. Подозрительным с точки зрения алгоритма пользователям предоставлялась дополнительная проверка в виде выбора подходящих по смыслу картинок, а благонадёжных же система пропускала дальше.

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

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

Да и у обычных пользователей, желающих получить доступ к информации, защищённой Google CAPTCHA, частенько возникали проблемы с корректным выбором картинок, а также данная технология критиковалась за использование куков браузеров клиента, что затрудняло её прохождение в анонимном режиме и при очистке cookies при завершении сессии.

Всё это послужило стимулом для разработки reCAPTCHA v3, бета-версия которой официально была презентована в мае этого года на конференции Google I/O 2018. А с октября 2018 года данный продукт находится в открытом доступе и воспользоваться ей может любой желающий.

Особенности алгоритма Google reCAPTCHA v3, естественно, никто не раскрывает, чтобы не давать лазейку хакерам для её взлома, но в ходе публичного бета-тестирования пользователи обратили внимание на следующие особенности новой капчи:

Как видите, для того, чтобы преодолеть Google reCAPTCHA v3, нужно просто оставаться человеком, как это ни банально звучит 🙂 Больше ничего не нужно никому доказывать — система сделает выводы сама.

При этом с технологической точки зрения также произошли некоторые улучшения, связанные не только с процессом её эксплуатации, но и с особенностями установки на сайт.

Создание Google reCAPTCHA 3 версии и генерация API ключей

Процесс установки Google рекапчи 3 версии, как и предыдущих двух, начинается с этой страницы. Для доступа к ней нужно иметь зарегистрированный Google аккаунт (почту на Gmail-домене) и быть авторизованным через него в браузере.

На данной странице имеется список всех создаваемых вами Google CAPTCHA, а также форма добавления новых:

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

На форме добавления новой капчи вам нужно будет выбрать её версию (сейчас доступны v3 и v2, до недавнего времени была доступна ещё и v1), ввести доменное имя сайта, на котором она будет располагаться (можно несколько, если у вас есть тестовый домен или вы ведёте разработку локально) и название для капчи с целью её идентификации в списке (можно хоть «111» назвать).

В качестве демо Google reCAPTCHA v3 я решил использовать свой тестовый локальный сайт, который я создавал для демонстрации reCAPTCHA v2, состоящей из одной-единственной формы добавления комментариев, защищённой капчей. Доступен он у меня будет на локальном компьютере по адресу http://recaptcha.v3, поэтому при создании reCAPTCHA я ввёл следующие данные:

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

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

В нижней части формы добавления новой Google CAPTCHA находятся подписи соглашений с условиями использования данного продукта, которые включают в себя обязательное уведомление конечных пользователей об использовании reCAPTCHA v3 у себя на сайте (т.к. она невидимая), согласие на обработку персональных данных:

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

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

А также в самом низу формы появилось поле, после установки галочки в котором вам на email будут поступать сообщения о подозрительном трафике, зафиксированном с помощью Google reCAPTCHA, а также о проблемах с настройкой капчи и сайта в целом.

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

После ввода данных и нажатия на кнопку Регистрация вы попадёте на страницу со сгенерированными API ключами для клиентской и серверной части сайта:

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Также моё внимание привлекло сообщение в самом верху страницы о том, что при недостаточном количестве пользователей результаты проверки reCAPTCHA могут быть неточными. Из этого косвенно следует то, что алгоритм определения «человечности» пользователей будет вычислять показатель на основании средней активности пользователей сайта.

Т.е. шкала от 0 до 1 не будет универсальной для всех сайтов. И, нужно сказать, что это правильно, т.к. активность пользователей на странице сайта-казино и блога будет совершенно различной.

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

Правда, я проигнорирую свою же рекомендацию, т.к. мой демо-сайт будет одновременно являться и live/production, поэтому просто продолжу установку.

Установка Google reCAPTCHA v3 на PHP сайт

Шаги установки Google reCAPTCHA v3 очень подробно описаны на финальном экране создания Google reCAPTCHA v3 с API ключами, поэтому я просто их выполню.

Подключать я рекапчу буду, напомню, на сайт, состоящий из формы комментариев, которая выглядит так:

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Backend сайта разработан на моём любимом PHP и для данного примера он будет состоять из 2 файлов. Первый из них, index.php, является точкой входа и содержит всего одну строчку рендеринга HTML файла с вёрсткой формы комментариев form.html.

index.php:

form.html:

Первым этапом добавления Google reCAPTCHA на сайт является добавление JavaScript кода, содержащего клиентский API-ключ, в HTML код сайта. Клиентский код состоит из двух скриптов: общего скрипта библиотеки, предоставляющего объект grecaptcha, который мы должны разместить в шапке сайта между тэгами head, и скрипта отправки запроса на сервер reCAPTCHA.

После добавления кода Google reCAPTCHA v3 код формы стал выглядеть следующим образом:

При этом на странице в правом нижнем угле появилась иконка Google reCAPTCHA, которая предусмотрена Пользовательским соглашением и служит для информирования пользователей о применении данного продукта. Так что удалять или скрывать её я вам настоятельно не рекомендую, а если это потребует сделать заказчик — можете смело приводить предыдущее предложение в качестве аргумента 🙂

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

Официальная документация Google никаких чётких указаний и примеров не даёт, поэтому пришлось находить решение самостоятельно 🙂

Google reCAPTCHA v3 в этом плане отличается от предыдущей версии, для интеграции которой нужно было встраивать в защищаемую от спама HTML форму скрытое поле с клиентским API ключом. В итоге, на сервере данный ключ подтверждался отправкой повторного запроса на Google сервер — и вся магия происходила на стороне PHP бэкэнда.

Из кода же рекапчи 3 версии напрашивается решение, что нужно делать ajax запрос на сервер к PHP скрипту, внутри которого проверять, является ли человек роботом или нет.

Отправку AJAX запроса из JavaScript на бэкэнд я реализовал следующей модификацией кода формы:

Как видите, отправку HTTP запроса из JavaScript кода я реализовал с помощью JS метода fetch(), запуская на бэке скрипт verify_captcha.php, передавая в него генерируемый на стороне Google reCAPTCHA сервера токен и action, который будет использоваться для дополнительной верификации запроса на нашем сервере.

Если отправителем запроса будет робот, я прописал код, который будет скрывать форму комментариев. Данную логику я реализовал исключительно в качестве примера, т.к. при автоматической отправке запросов хакеров вряд ли остановит скрытая форма 🙂

Скрипт verify_captcha.php, проверяющий данные, пришедшие с фронта, в данном случае будет выглядеть следующим образом:

В итоге, при отправке запроса на сервер рекапчи с нашего бэкэнда я получил ответ в следующем формате:

На основе полученных данных я и организовал финальную проверку перед обратной отправкой данных на сторону клиента, где проверяются название action, статус операции и оценка действий пользователя, определяющая «человечность» пользователя.

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

Однако у данного подхода есть несколько минусов:

Чтобы устранить данные недостатки я решил реализовать проверку действий пользователя не на этапе загрузки страницы с отправкой AJAX запроса на наш сервер, а непосредственно при оправке данных формы, прикрепляя к ней action и токен, сгенерированный на reCAPTCHA сервере.

Таким образом мне удалось снизить количество запросов на этапе загрузки страницы с 3 до 1 и сделать проверку более естественной.

При этом код формы у меня принял следующий вид:

Код серверной проверки валидности капчи в этом случае останется без изменений.

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

Достигается это за счёт добавления скрытых полей в форму, значения которым задаются при получении ответа от Google reCAPTCHA сервера.

Кстати, хотел сделать одно важное замечание по поводу использования Google reCAPTCHA v3, о котором мне сообщил один из читателей в комментариях.

В официальной документации reCAPTCHA v3 сказано, что каждый reCAPTCHA response token считается действительным в течении 2 минут после его генерации, и может быть проверен только один раз для предотвращения атак повторной отправки. Если вам нужен новый токен, вы можете перезапустить верификацию капчи.

После того, как вы получили response token, вам необходимо проверить его в течении двух минут с помощью reCAPTCHA API, чтобы убедиться, что токен является действительным.

Простым языком, если вы генерируете reCAPTCHA response token для бэкэнда на фронте во время загрузки страницы, вам нужно генерировать его повторно перед отправкой запроса через форму, т.к. чисто теоретически пользователь может отправить на бэк данные, которые нужно проверять на спамность, и через 2, и через 5, и через 30 минут после открытия страницы в браузере.

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

Думаю, что такую ситуацию имел в виду и автор вышеупомянутого комментария, который сказал, что потерял деньги из-за этой особенности Google reCAPTCHA, о которой он был не в курсе. Скорее всего, у него произошла та ситуация, которую я предположил выше: клиент отправил заявку через сайт, но капча её не пропустила, т.к. он отправил её тогда, когда срок жизни токена истёк.

Поэтому данный нюанс очень важен. Не повторяйте чужие ошибки 😉 И ещё раз спасибо автору комментария.

Мои впечатления от Google reCAPTCHA v3

Что я могу сказать в итоге о новой Google reCAPTCHA v3? С точки зрения пользователя данный продукт однозначно намного удобнее своих предшественников за счёт того, что теперь не нужно вводить никаких трудноразличимых символов и выбирать непонятные картинки. А всё это время и раздражение посетителей, что может привести к тому, что они попросту передумают вводить информацию, а может и вовсе отказаться от использования ресурса в целом.

Теперь же, когда капча стала полностью невидимой, все эти проблемы остались в прошлом, т.к. решение о том, является ли пользователь роботом или нет, будет приниматься в фоновом режиме на основании его поведения на сайте. Главное только, чтобы данный алгоритм действительно защищал ресурсы от автоматизированных атак, т.к. его детали засекречены и всё, что нам остаётся — это верить на слово «Корпорации добра» 🙂

В плане интеграции Google reCAPTCHA 3 на сайт я лично никаких существенных изменений не заметил. Так же, как и раньше, валидация действий пользователя происходит на сервере и клиенте. Серверная часть вообще осталась без изменений — для серверной проверки я использовал код, разрабатываемый для Google reCAPTCHA 2.

На клиенте механизм же слегка изменился и теперь позволяет производить проверку пользователя на «человечность» как при загрузке страницы, отправляя на бэкэнд AJAX запрос, так и по запросу, т.е. при оправке данных каких-либо форм и, возможно, даже при произведении иных действий с DOM деревом элементов.

Одним словом, теперь при интеграции клиентской части кода Google reCAPTCHA v3 появилось ещё больше гибкости, вследствие чего появится ещё больше вариантов реализации капчи на сайтах.

С одной стороны, это хорошо, но, как по мне, готовые примеры от Google не помешали бы, т.к. бОльшую часть работы приходится делать самому, а пользователям, не сильно разбирающимся в программировании, банальное добавление reCAPTCHA на сайт будет не по зубам без посторонней помощи в виде статей и готовых плагинов для CMS.

Ну, и в завершение хочу сказать, что представленный в статье код вы можете найти на Github в репозитории, который создавался для статьи о разработке капчи на PHP, ссылку на которую я приводил ранее в статье.

Демо версию Google reCAPTCHA v3 вы сможете найти внутри репы в каталоге google_captcha_v3. Буду рад любым предложениям по улучшению кода и активному участию в виде pull-requests.

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться 😉

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

Recaptcha v3 или v2 что лучше для сайта. lazy placeholder. Recaptcha v3 или v2 что лучше для сайта фото. Recaptcha v3 или v2 что лучше для сайта-lazy placeholder. картинка Recaptcha v3 или v2 что лучше для сайта. картинка lazy placeholder

59 комментариев к статье «Новая reCAPTCHA от Google 3 версии: возможности и установка на сайт»

Спасибо за подробный обзор с примерами кода, 2 версия капчи действительно парила мозги, иногда тратил по 2-3 минуты, щелкая по картинкам)

Пожалуйста. Спасибо Вам за отзыв 🙂

Спасибо за статью! Очень вовремя для меня.

Пожалуйста. Спасибо Вам за отзыв 🙂

Наконец-то первая содержательная статья про новую капчу. Хочу внедрить на сайт ее. Есть пару вопросов, ответы на которые не могу найти.

1. Что мне делать при регистрации если у пользователя будет оценка, к примеру, ниже 0.5?
Блокируем регистрацию для такого пользователя? Навсегда? На час или другой промежуток времени?
2. Может ли данная капча защитить от автоматической регистрации пользователей? Если да, то какой механизм защиты вы видите?
3. Может ли данная капча защитить от брутфорс атак формы авторизации?

Здравствуйте. Спасибо за комментарий 🙂 По поводу Ваших вопросов:

1. Хороший вопрос, на самом деле 🙂 Самое интересное, что сам Google не даёт чёткого определения, какая оценка соответствует роботу, а какая — человеку. Вот, что говорится в официальной документации Google reCAPTCHA v3: reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is very likely a bot). Т.е. если балл 1.0 — это очень похоже на хорошее взаимодействие (реального пользователя), 0.0 очень похоже на бота. На этой же странице Google рекомендует брать в качестве граничного значения 0.5. Т.е. опять всё основано на рекомендациях и чрезмерной гибкости — решать в итоге всё равно Вам и устанавливать предел для роботов тоже Вам. Следовательно, если reCAPTCHA v3 покажет меньше установленной границы — пользователя можно считать роботом и его действие не засчитывать. По поводу постоянной или временной блокировки — также решать Вам. На практике используются оба подхода.

2. Да, может. С этой целью все капчи, собственно говоря, и разрабатываются 🙂 Механизм описан выше — выбираете граничное для робота значение и если рекапча покажет меньшее число — пользователь является роботом и его действие должно не учитываться. Как вариант, можно генерировать исключение или отдавать какой-то специфический HTTP код ошибки с обязательной записью попытки в лог сайта, чтобы в дальнейшем можно было проанализировать ситуацию и активность атакующих. Также будет хорошо блокировать пользователя, как Вы и сами предложили ранее, по его IP и внутреннему id пользователя, если атака производилась авторизованным пользователем (а при атаке с разных IP адресов данный параметр будет являться единственной зацепкой для блокировки).

3. Да, может. С помощью той же временной или постоянной блокировки по IP (внутренний id пользователя здесь не поможет, т.к. пользователь не авторизовался). Поскольку брутфорс-атаки — это разновидность автоматизированных атак, то reCAPTCHA с большой долей вероятности определит частые попытки авторизации как действия робота. А Вам останется только заблокировать данного пользователя. Для уверенности всё же я порекомендовал сделать на бэке дополнительную проверку на частоту запросов с одного IP. Если частота попыток входа с одного адреса будет больше 1 запроса в 2-3 секунды (быстрее реальный человек вряд ли введёт), то это — робот и смело можете банить его. Для начала можно временно (на час, например). Если пользователь получит несколько временных банов — можно банить постоянно.

Кстати, капча может спасти даже при атаке с разных IP (если каждая атака производится с разных IP), при которых бан по IP будет малоэффективен.

Здравствуйте, мне кажется, что в Вашем втором варианте при валидации капчи может вернуться ошибка: «timeout-or-duplicate» если пользователь затянул с отправкой формы после входа на страницу.
А вообще статься очень помогла, спасибо!

Спасибо за отзыв 🙂 Почему Вы думаете, что может возникнуть ошибка валидации CAPTCHA timeout-or-duplicate? Не замечал у себя при реализации. Можете подробнее кейс её возникновения описать?

У меня как раз возникает эта ошибка, если форсу отправить 2 раза.

Спасает обновление страницы.

Это большой косяк, если пользователь ошибся в номере телефона, отправил… и решил повторно отправить с правильным номером 🙁

Как лечить, пока не понятно…

А в чём косяк? Запрос с формы был отправлен. Логично, что для повторной отправки нужно будет вернуться обратно или перезагрузить страницу, если отправка с помощью AJAX без перезагрузки происходила.

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

Да — форма отправляется через ajax без перезагрузки.

На генерация токена назначил jquery функция.
1) Первый токен генерируется — по запросу формы.
2) Новый токен генерируется после отправки формы.

В итоге при повторной отправки формы нам не нужно делать лишних телодвижений в виде обновления страницы.

Что скажите, корректно это или есть подводные камни в таком способе?
Спасибо.

Да, вполне себе рабочий вариант в плане юзабилити. Да и в плане безопасности не должно быть каких-то дыр, т.к. по сути все действия происходят на стороне Google серверов. Даже если хакер начнёт делать DDOS или брутфорс атаки, то Гугл должен будет его развернуть.

Как реализовали это? Код не подскажете?

День добрый. Есть вопрос по гугл капча 3. Установил по вашей статье, есть один вопрос. Как назначать действие, после определения оценки?

Капчу поставил на отправку формы, скажем как сделать что бы форма не отправлялась, если оценка низкая или добавлялся еще какой момент для фильтрации бота.

Спасибо за комментарий. Отвечаю 🙂

Оценка действий пользователя прилетает с сервера Google рекапчи уже при втором запросе с бэкэнда, т.е. из PHP скрипта, как в моём примере, C#, Ruby, Python, Node.js или другого серверного языка программирования.

Поэтому без сабмита формы не обойтись, потому что именно так данные с клиентской части приходят на наш сервер. Не знаю особенности вашей ситуации, но при неудовлетворительной оценке действий пользователя действие объявлять нужно здесь:

Если под запретом отправки формы Вы подразумевали блокировку действия, производимого с помощью формы, на которой установлена капча, то код выше вам подойдёт. Кстати, обработку данных формы нужно прописывать при выполнении условия положительного ответа от Google сервера.

Добавил комментарии и обновил код статьи для предотвращения заблуждений у других. Спасибо за идею 🙂

Спасибо за ответ.
Рассказываю свой кейс.

Коммерческие сайты — форма заявки на услуги, данные уходят на почту операторам, те в свою очередь звонят и т/д
Бывает или летит куча заявок — ну это сразу видно спам, а бывают заявки — по которым или не могут дозвонится или там люди в шоке и ничего не оставляли. Тут момент — или это боты или уже конкуренты пакостят. Сайты на WP, за форму отвечает CF7.

Сейчас я значит сделал следующую схему.

Отказался от CF. Теперь за отправку отвечает Ajax + PHP обработчик + Google Form + reCaptca 3

Форма через Ajax уходит на обработчик, тот в свою очередь получает ответ от капчи. Если оценка ок — то отправляет в Google таблицу, дальше дело операторов.

Если оценка низкая, то обработчик отправляет письмо с пометкой бот, где есть IP, User Agent и прочая инфа по которой можно оценить адекватность заявки. И в Google таблицы ничего не заносится, что б не портить статистику.

Такой вот кейс, надо допилить и выкатывать в свет.

Изначально идея была просто заявки собирать в таблицы, но в итоге перерасло в такой кейс.

Главная цель — это не бесить людей «Я не робот» или неведимкой и «выберете светофоры» 🙂

Уже позже посмотрим как это все работает. Я кстати правильно понимаю, что в идеале ставить одну капчу на все сайты, что б статистика собиралась более полной!?

И последний вопрос, а почему в комментариях у вас капча 2й версии!? 🙂

Для Вашего кейса данная капча подойдёт идельно. В принципе, Вы описали стандартный случай её использования.

По поводу статистики — тут уже, как Вам будет угодно. Нужно будет отслеживать статистику по сайтам — регистрируйте API ключ капчи на разные аккаунты, если не принципиально — можно и на один все добавить.

По поводу reCAPTCHA 2 на данном сайте — это, что называется, «сапожник без сапог» 🙂 На самом деле просто руки не дойдут поменять. У меня и до текущей реализации руки наверное с год доходили. И решился её установить только после того, как пользователи в комментариях стали жаловаться. До этого стояла стандартная WordPress CAPTCHA.

С этой пока всё в порядке, спама в комментах не очень много, да и пользователи сильно не жалуются. Но есть ещё нюанс — для reCAPTCHA v3 придётся немного пересматривать дизайн, потому что она сама по себе скрытая, но сбоку экрана появится иконка о том, что она установлена (как на превьюшке к статье). Придётся подвёрстывать кнопку «Вверх», на месте которой плашка вылезет.

В общем, как-то соберусь 🙂

А на коммерческие сайты я ставлю новую рекапчу, собственно говоря, необходимость её установки и подвигла меня на написание этой статьи 🙂

А можно установить рекапчу перед входом на сайт, чтобы отсекать парсеров и подозрительных ботов? Какой в этом случае код будет?

Вечер добрый 🙂 Можно, в статье есть вариант html кода страницы для отправки запроса на валидацию капчи сразу после загрузки страницы с помощью AJAX запроса на сервер приложения. Если будут проблемы с установкой — обращайтесь, будем разбираться вместе 🙂

Ну, чего прописать, я всем желающим даю. А уж куда — тут уж извините, всё индивидуально 🙂 Могу и с этим, конечно, помочь, но это уже за деньги.

Спасибо, что напомнили про деньги, иначе не раскачался бы, а так посидел и сделал.
Хороший пример, но добавьте, что библиотеки для php, которые обрабатывают json и curl, могут быть не установлены по умолчанию. Я наткнулся на эти грабли.

Мне вот нравится, когда проверка идет в фоне, а пользователь смотрит на неактивную кнопку «отправить».
Может у вас есть подобный пример?

Готового примера у меня нет, но Вы сами можете его сделать на основании кода из статьи 🙂 Просто в данном фрагменте укажите идентификатор кнопки и изменения её стиля (в примере происходит полное скрытие элемента):

А вообще насколько она надёжная, эта капча?
Вы статистику смотрели, есть ложные отказы или пропуски?

Пока сложно что-то сказать, технология новая. Но оснований не доверять Гуглу, как по мне, нет 🙂

Знаете, нужен какой-то тест на робота. Как вот к ней подойти, чтобы она не пропустила?
Меня со всех компьютеров и всех телефонов пропускает. Может она вообще всех любит? 🙂

Попробуйте потестировать в режиме инкогнито браузера. Это самое простое. Плюс, самый верный способ — автоматизация процесса тестирования для имитации DDOS, BruteForce и другие видов атак с помощью специальных инструментов.

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

Из самых доступных инструментов могу посоветовать Postman и другие REST клиенты, позволяющие делать массовую отправку GET/POST запросов. Запросы отправлять на url сабмита формы.

Знаете, первое что я делал — это тестировал в режиме «инкогнито» — проходит. Думаю, прикрутить себе лог с оценкой, которую выдала рекапча.

Скажите, а можно на бэкенде обойтись без функции CURL? У нас библиотека php-curl конфликтует с другими, и от неё приходится отказываться.
Есть идея поставить другой обработчик php именно на этот скрипт, но это какие-то костыли

Как альтернативу можете попробовать отправить POST запрос с помощью PHP file_get_contents().

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

И маленький вопрос, что такое у вас там «add_comment»?

День добрый. Ситуация с перезагрузкой страницы и неработающей капчей уже обсуждалась в комментариях. Это вполне нормальное поведение для reCAPTCHA и никак не её недостаток 🙂 По поводу отправки письма при не пройденной капче — это уже проблемы реализации. Код отправки письма должен быть внутри условия успешного решения Google reCAPTCHA:

По поводу add_comment — это название действия, защищаемого с помощью reCAPTCHA. И данная информация участвует в формировании токена капчи на сервере reCAPTCHA. По сути, у вас здесь может быть любая строка. Главное, чтобы она была одинаковой в клиентском коде перед отправкой запроса на бэкенд и в коде проверки параметров запроса на сервере.

Приветствую.
Есть идеи как прикрутить капчу на форму входа\регистрации wordpress?

Пока вижу только способ, править файл wp-login.php где сама html форма идет.

Но это путь в никуда ибо после обновления, велика вероятность перезаписи файла и прощай вся настройка.

Ну и даже это у меня только в теории, тк не совсем понятно как корректно все это дело подружить 🙂

Добрый вечер! 🙂 Ход мыслей по поводу «пути в никуда» у вас верный. В WP никто стандартные элементы руками не правит. Для этого в API WordPress существуют хуки — методы, позволяющие добавлять кастомный код в стандартные блоки кода движка.

Для формы входа можете воспользоваться хуком login_form, примеры использования которого и описание можете найти по приведённой ссылке.

Для формы регистрации можете воспользоваться хуком register_form.

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

Мне кажется или теперь машины проводят тест Тьюринга на людях??

Ну, в чём-то Вы правы 🙂 Изначально CAPTCHA — это и есть автоматизированный тест Тьюринга.

Более подробно об истории возникновения капчи, её разновидностях и принципе работы можете прочитать здесь.

почему у меня на вот эту строку ругается?
$params = [
Parse error: syntax error, unexpected ‘[‘ in

Проверьте близлежащий код. Скорее всего, ошибка даже не на этой строке. Обычно подобная ошибка возникает, когда не закрыты скобки или кавычки либо не стоит запятая или точка с запятой в конце строки.

Не срабатывает у меня и всё, полночи промучился, по трём разным статьям, по одному видео и ни как. Ключи и открытые и закрытый есть.
Даже не знаю что и спросить..
Как дебаггер включить? Чтоб увидеть в чём может быть загвоздка..

А где именно проблема? Что конкретно не работает?

Смысл в том, что всё по инструкциям, а сообщения отправляются!! Есть форма отправки на е-маил с прикреплением файла, так вот если давить на кнопу «Отправить» с периодичностью в секунду, то и количество писем на почту приходит сколько раз я нажал на кнопку «Отправить»!! И капча не срабатывает, куда копать, на что смотреть??

Дебажить код тогда нужно и смотреть, какие данные в итоге приходят на бэкэнд с сервера Google reCAPTCHA, а также какие данные передаются с фронтэнда на бэкэнд.

Для дебага в JS коде (фронтенд) используйте следующую функцию:

Для PHP я лично пользуюсь следующей конструкцией для читабельного результата:

Добрый день, очень полезная статья.
У меня только возник вопрос, у меня на сайте 2-3 формы на странице, и никак не могу реализовать работу всех форм, работает только первая, остальные не проходят проверку и выдает ошибку

Здравствуйте. Спасибо за отзыв 🙂

По Вашему вопросу — нужно убедиться, что у всех форм и элментов внутри них id уникальные. То поведение, которое Вы описываете, очень похоже на то, что id у всех один, тогда срабатывает только первая форма — остальные не воспринимаются.

А бэкэнд код останется без изменений. Один скрипт для всех форм отработает. Единственное, для новой reCAPTCHA v3 нужно action посылать на бэкэнд — так вот их тоже нужно будет сделать разными для всех форм.

Сам интерес, id были разные, в js коде тоже добавлял копии id, но при отправке второй или третей формы, выдает false.
Изменил js с определением класса, но тогда все перестало работать.

Не понял что значит «для новой reCAPTCHA v3 нужно action посылать на бэкэнд — так вот их тоже нужно будет сделать разными для всех форм.»
Это нужно action в js указывать или в теге form? У меня в теге form указан action везде одинаковый «/mail.php».

Изменить значение action при отправке на бэкенд — это поменять значение переменной captcha_action в JS-коде. Для всех трёх скриптов там должны быть разные данные.

И ещё не лишним будет подебажить ответ сервера reCAPTCHA при отправке ему запроса из PHP кода. Там обычно подробно описывается причина, по которой алгоритм считает пользователя роботом.

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

Из того кода, что у Вас вышел, я заметил только, что доступ к элементам форм для присвоения им значений токенов, возвращённых с сервера рекапчи, вы получаете по классам, а не по id. В остальном логика та же, что я и говорил.

Для красоты кода могу посоветовать следующий вариант:

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

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

У Вас указано в проверке (на сервер): если больше 0 (> 0), тогда делаем отправку формы.

Каково вероятность, что бот может и 0,3 и выше набрать?

Добрый день.
Заметил некий нюанс. У вас токен генерится при загрузке страницы, однако Google (https://developers.google.com/recaptcha/docs/verify) предупреждает, что время жизни токена ограничено двумя минутами.
«Each reCAPTCHA user response token is valid for two minutes…»
Поэтому имеет смысл получать токен непосредственно перед отправкой формы, навесив эту функцию на событие ‘submit’.

Да, действительно, есть смысл. Согласен. Реквест с формы, защищённой капчей, может отправляться и через час после открытия страницы. Как-то не долгядел это ограничение.

Здравствуйте, почему статья не учитывает временной отрезок жизни капчи в 2 минуты?
Я на этом прокололся и потерял деньги для компании. Т.к. капча подгружается при загрузке страницы, то по истечении 2 минут она аннулируется и проверка не проходит.
Для повторного использования токена, по истечению времени или для отправки повторной формы, необходимо его запросить заново посредством метода grecaptcha.execute.
Обязательно добавьте данную заметку.

Спасибо за замечание. Да, действительно этот кейс является очень коварным. Но в виду того, что большинство пользователей с ним вряд ли столкнётся (если делать стандартную валидацию капчи при отправке данных через HTML-форму), я об этом не писал. Теперь добавлю обязательно.

Здравствуйте. Ответ на Ваш вопрос уже есть в комментариях под статьёй. Прочитайте их внимательно, пожалуйста 🙂 Вы не первый, кто сталкивается с такой проблемой 😉

Здравствуйте. К сожалению, по описанию проблемы сложно определить в чем причина. В таких случаях всегда нужно смотреть сайт.

Здравствуйте! подскажите! у меня есть свой аккаунт в гугле, я могу установить Google reCAPTCHA v3 на сайт, который не связан с моим аккаунтом.

Источник

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

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