Прикручиваем reCAPTCHA к комментариям в WordPress

Сейчас проходит бета-тестирование 2-й версии reCaptcha от Google. Она называется «Invisible reCAPTCHA» — вроде как невидимая кепча. Но вы уже можете её установить на свой сайт, чем мы и займемся в этой статье.

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

Вот пример:

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

Регистрация ключей для reСaptcha

Это первый этап. Нужно получить ключ для общения с API кепчи. В принципе, вы можете подцепить к одному ключу — разные домены (сайты), но по каждому из ключей ведется отдельная статистика. Если эта статистика вам интересна, то я думаю вы не будете «валить всё в кучу».

https://www.google.com/recaptcha/admin

В результате регистрации мы получим пару ключей — открытый и закрытый (секретный).

Добавляем код в шаблон комментариев

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

Сразу после формы вставим необходимые скрипты:

Как видите, шаблон не пострадал — нужно лишь добавить скрипты.

Добавляем обработку на стороне сервера

Теперь нужно проверить кепчу на сервере, пользуясь API Google, и проанализировать результат этой проверки (например, послать спамеров куда подальше :) ).

Хуки обычно добавляют в файл темы functions.php.

Зацепимся к preprocess_comment, т.е. комментарий ещё не сохранен в базу. Нужно будет выполнить запрос к API Captcha, получить ответ и в соответствии с результатом разрешить/запретить сохранение комментария.

Бóльшая часть кода, как видим, связана с обслуживанием CURL. Если кепча в порядке, то $result->success == true. Дальше действуем по ситуации :).

Написать комментарий

Мало букафф? Читайте есчо !

Комплекс антиспам мер, примеры для Drupal 6

Январь 17, 2013 г.

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

Читать

Удаление бот-пользователей с сайта на Drupal

Сентябрь 22, 2015 г.

Несколько лет назад, когда решил попробовать 7ю версию drupal, я создал сайт wbserv.ru. Тогда только начали предлагать разные облачные услуги, это показалось ...

Читать

 

Комментарии к «Прикручиваем reCAPTCHA к комментариям в WordPress»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Прикручиваем reCAPTCHA к комментариям в WordPress”

  1. Василий:

    А если прикрутить эту фичу, то в правом нижнем углу будет тоже светиться плавающая кнопка? Ока куда больше портит общий вид т.к. отображается всегда

    • Это резонно, но никто вам не мешает добавить стили, вроде:

      .grecaptcha-badge {
      display: none;
      }

      А в сравнении со стандартной кепчей, которая болтается в форме, это меньшая плата.