Вышла новая версия reCaptcha API 2.0

в 9:58, , рубрики: captcha, Google API, web-разработка, безопасность, Веб-разработка, информационная безопасность

Вышла новая версия reCaptcha API 2.0 - 1 На днях, занимаясь очередным внедрением reCaptcha для одного из проектов, столкнувшись с небольшой проблемой в области отображения нескольких защитных изображений на 1 странице с помощью AJAX я в очередной раз пошел на страницу официальной документации «reCaptcha» и обнаружил, что документация существенно отличается от предыдущих версий.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.

В Новой версии reCaptcha, или как ее теперь следует называть «gCaptcha» существенным изменениям подверглись визуальный интерфейс капчи для веб-приложений и алгоритм взаимодействия с сервисом валидации (API). Сами «защитные изображения» существенно (визуально) не изменились.
В данный момент так же нет (мне не удалось найти) информации об «официальном релизе» reCaptcha2, а на посадочной страничке проекта весит гордый "coming soon".

Новый интерфейс reCaptcha 2

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

Вышла новая версия reCaptcha API 2.0 - 2

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

Вышла новая версия reCaptcha API 2.0 - 3

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

Новый API

Вместе с новым интерфейсом reCaptcha2 для взаимодействия используется и новый алгоритм внедрения и взаимодействия с удаленным API.
Ключи для использования reCaptcha2 на ваших сайтах можно получить в новом интерфейсе (требуется авторизация google):

Вышла новая версия reCaptcha API 2.0 - 4

Все так же используется алгоритм приватного и публичного ключа, которые в данной версии названы как «секретный ключ» и «ключ» соответственно. Существенным изменением является то, что ключ в reCaptcha2 не может быть глобальным — теперь каждый домен, на котором планируется использовать reCaptcha2 должен быть указан в настройках. Для localhost и 127.0.0.1 капча будет работать без указания домена.
С новым api внедрить капчу в тело страницы — дело 2х строк кода(*пример простого внедрения):

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="your_site_key"></div>

Несмотря на это, api обладает достаточно большим набором функций для различных вариаций выгрузки reCaptcha2 и настройки ее визуализации(отображение по callback'у, стилизация и другие).
Изменился и API для валидации взаимодействия пользователя с капчей. Сразу хочу отметить, что ранее используемый стандартный post field — recaptcha_response_field теперь именуется как g-recaptcha-response. Сам API теперь возвращает результат проверки в формате JSON, что собственно не может не радовать. Запрос на валидацию при submit`e формы с капчей должен выглядеть следующим образом:

https://www.google.com/recaptcha/api/siteverify?secret=your_secret&response=response_string&remoteip=user_ip_address

где соответственно secret — приватный ключ (секретный ключ), response — результат ответа пользователя (post.g-recaptcha-response), remoteip — ип-адрес пользователя (не обязателен). Результат обработки на данном URL будет возвращен в JSON формате:

{
  "success": true|false,
  "error-codes": [...]
}

в результате чего, валидация капчи будет выполнена в 1 строку (json_decode; object->success).
Документация: смотреть на google

Другие «Futures»

Помимо всего выше описанного в личном кабинете reCaptcha2 видны «заготовки» статистики, которые позже позволят вам анализировать поведение ваших пользователей, связанное с разгадыванием капчи. Так же доступны статистические данные об «индексе спама» и прочих рюшечках, мне пока не ясно для чего они предназначены(видимо для уведомления о повышении/понижении тенденции с количеством разгадываний капч на сайте).
В reCaptcha2 так же сохранены алгоритмы для людей с ограниченными возможностями — доступно проигрывание капчи и скачивание mp3.

Ссылки по теме:

П.с. — для собратьев, увлекающихся php прикреплю ссылку на готовую библиотеку по упрощенному(хотя — куда уже легче то?) использованию reCaptcha2: github/google

Автор: zenn

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js