Как поставить капчу на комментарии. No CAPTCHA reCAPTCHA русская версия. Методы снижения спам-нагрузки и почему именно reCAPTCHA

Установка reCAPTCHA на сайт делится на 3 этапа:

  1. Регистрация и получение API key.
  2. Интеграция на стороне клиента.
  3. Интеграция на стороне сервера.

В данной статье мы рассмотрим процесс добавления Google reCAPTCHA в стандартную форму комментариев WordPress. Если ваш сайт работает под управлением другой CMS, рекомендую воспользоваться официальным руководством от Google .

Регистрация и получение API key

После авторизации в аккаунте Google, переходим на главную страницу Google reCAPTCHA и жмем на кнопку «Get reCAPTCHA».


Google reCAPTHCA — добавление нового сайта

После регистрации мы получим два ключа:

  1. Ключ сайта (Site key) – используется в открытом виде как идентификатор.
  2. Секретный ключ (Secret key) – используется на стороне сервера для связи с Google.

На этом подготовка к работе завершена.

Интеграция на стороне клиента

Интеграция Google reCAPTCHA на стороне клиента заключается в добавлении HTML-кода в шаблон сайта. Сделать это можно разными способами, но мы рассмотрим только наиболее правильный. Его суть заключается в использовании специализированных функций WordPress. При этом весь код добавляется в файл functions.php, не затрагивая других файлов, в частности файлов движка сайта.

Всего нужно выполнить 2 действия:

  1. Подключить скрипт reCAPTHCA api.js
  2. Добавить HTML-код блока reCAPTCHA.

Подключение reCAPTCHA api.js

Подключение нового скрипта в WordPress сводится к трем операциям:

  1. Регистрации скрипта при помощи функции wp_register_script().
  2. Инициализации скрипта при помощи функции wp_enqueue_script().
  3. Привязке функций к событию wp_enqueue_scripts при помощи функции add_action(). Для этого функции wp_register_script() и wp_enqueue_script() помещаются в еще одну функцию, которая вызывается в add_action().
add_action("wp_enqueue_scripts", "add_recaptcha_js", 5, 1);
function add_recaptcha_js() {
// Регистрация reCAPTHCA api.js, version - null, in footer - false
wp_register_script("recaptcha", "https://www.google.com/recaptcha/api.js?hl=ru", array(), null, false);
// Подключение reCAPTHCA api.js
wp_enqueue_script("recaptcha");
}

Добавление HTML-кода блока Google reCAPTCHA

В данном примере мы добавим код блока Google reCAPTCHA в конец стандартной формы комментирования WordPress, непосредственно перед кнопкой отправки. Для этого используем специально предназначенный для этих целей хук comment_form. При этом блок будет отображаться только неавторизованным пользователям.

Add_action("comment_form_after_fields", "recaptchadiv");
function recaptchadiv($post_id) {
global $user_ID;

if ($user_ID) {
return $post_id;
}
echo "

";
return $post_id;
}

Не забываем заменить site_key на свой ключ.

Интеграция на стороне сервера

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

Таким образом, для защиты комментариев WordPress нам потребуется две функции:

  1. Функция проверки ответа сервера Google.
  2. Функция предварительной обработки данных комментария.

Как и в случае интеграции на стороне клиента, весь код добавляется в файл functions.php.

Функция проверки ответа сервера Google reCAPTCHA

function verify_recaptcha_response() {
$recaptcha_secret_key = "secret_key";
$recaptcha_site_key = "site_key";
if (isset ($_POST["g-recaptcha-response"])) {
$captcha_response = $_POST["g-recaptcha-response"];
} else {
return false;
}
// Verify the captcha response from Google
$response = wp_remote_post(
"https://www.google.com/recaptcha/api/siteverify",
array(
"body" => array(
"secret" => $recaptcha_secret_key,
"response" => $captcha_response
)
);
$success = false;
if ($response && is_array($response)) {
$decoded_response = json_decode($response["body"]);
$success = $decoded_response->success;
}
return $success;
}

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

Функция предварительной обработки комментария

Завершающим этапом является написание функции предварительной проверки данных комментария и ее привязка к событию preprocess_comment.

Add_action("preprocess_comment", "preprocess_comment_cb");
function preprocess_comment_cb($commentdata) {
global $user_ID;
if ($user_ID) {
return $commentdata;
}
if (! verify_recaptcha_response()) {
echo "

Вы не прошли защиту от спама Google reCAPTCHA. Вернитесь на предыдущую страницу и повторите попытку.";
exit;
}
return $commentdata;
}

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

Плагин защиты комментариев от спама

Для тех, кто любит простые решения, я написал плагин для защиты комментариев WordPress от спама при помощи Google reCAPTCHA. Для его использования вам необходимо:

  1. Установить плагин.
  2. Ввести ключи в настройках WordPress.

Ключи необходимо вводить на главной странице настроек WordPress (Меню -> Настройки). Поля станут доступны внизу страницы настроек сразу после активации плагина.


Если ключи не будут введены, то защита отключится без каких-либо ошибок или последствий для работы сайта.

Для придания отступов и других стилей, добавьте в файл style.css правило для класса g-recaptcha.

G-recaptcha {
}

Заключение

Использование Google reCAPTCHA в комментариях позволит избавится от автоматически распространяемого спама и значительно снизит нагрузку на базу данных сайта. В свою очередь, подключение плагина Akismet защитит вас от спама, распространяемого вручную. Таким образом, рекомендую использовать Google reCAPTCHA в связке с плагином Akismet. Это гарантирует практически 100% защиту от спама, за исключением редких случаев «хитрого спама».

На этом статья про установку Google reCAPTHCA подошла к концу. Если у Вас остались какие-то вопросы или пожелания, вы всегда можете оставить свой комментарий к статье.

Из этой статьи вы узнаете, как интегрировать новую reCatcha Google в формы входа, комментариев, регистрации и восстановления пароля WordPress :

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

Поэтому ReCaptcha больше не являлась безопасной. Кроме этого метод был довольно неудобным для пользователей. Поэтому в Google разработали новое решение и назвали его No Captcha ReCaptcha .

В этой статье мы рассмотрим, что представляет собой No Captcha ReCaptcha , и как создать плагин, который интегрирует ReCaptcha в формы входа, комментариев, регистрации и восстановления пароля WordPress .

Обзор No Captcha ReCaptcha

No Captcha ReCaptcha отображает флажок, с помощью которого пользователю предлагается указать, что он не является ботом. Это может показаться не надежным решением, но внутренние алгоритмы и методы Google позволяют точно определить, является ли пользователь ботом. Новая версия является более удобной и безопасной.

Регистрация сайта и получения ключей

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

Вы должны создать страницу настроек для плагина, которая позволяет администратору WordPress установить ключ сайта и секретный ключ, которые он получит в панели администрирования ReCaptcha :

function no_captcha_recaptcha_menu() { add_menu_page("reCapatcha Options", "reCaptcha Options", "manage_options", "recaptcha-options", "recaptcha_options_page", "", 100); } function recaptcha_options_page() { ?>

reCaptcha Options

You need to register you domain and get keys to make this plugin work.

"); echo __("Enter the key details below"); } function display_captcha_site_key_element() { ?> " /> " />
  • Мы создаем страницу настроек в панели администрирования WordPress ;
  • На этой странице настроек выводятся два поля для ввода ключа сайта и секретного ключа;
  • Эти ключи сохраняются как параметры WordPress site_key и secret_key .

Добавление No Captcha ReCaptcha в форму комментариев WP

Нам нужно интегрировать ReCaptcha в форму комментариев, чтобы исключить возможность размещения ботами спама.

Создайте в папке плагина файл style.css и поместите в него следующий код:

#submit { display: none; }

Приведенный выше код скрывает кнопку «Оставить комментарий » в форме комментариев WordPress . Таким образом, мы размещаем панель ReCaptcha над кнопкой «Оставить комментарий «, вставив кнопку и панель ReCaptcha вручную.

Ниже приводится код для вставки ReCaptcha в форму комментариев:

function frontend_recaptcha_script() { wp_register_script("recaptcha", "https://www.google.com/recaptcha/api.js"); wp_enqueue_script("recaptcha"); $plugin_url = plugin_dir_url(__FILE__); wp_enqueue_style("no-captcha-recaptcha", $plugin_url ."style.css"); } add_action("wp_enqueue_scripts", "frontend_recaptcha_script"); function display_comment_recaptcha() { ?>

">

Давайте рассмотрим, как работает приведенный выше код:

  • Мы подключаем в интерфейсе WordPress с помощью действия wp_enqueue_scripts ;
  • Мы также подключаем файл style.css с помощью функции wp_enqueue_style ;
  • В форме комментариев мы выводим флажок с помощью действия comment_form ;
  • После того, как комментарий был отправлен, перед его добавлением в базу данных WordPress вызывается фильтр preprocess_comment . Внутри фильтра мы проверяем, является ли пользователь человеком или ботом. Если это человек, то возвращается комментарий, чтобы добавить его в базу данных. В противном случае возвращается ноль, чтобы блокировать добавление комментария в базу данных.

Добавление No Captcha ReCaptcha в форму входа WP

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

function login_recaptcha_script() { wp_register_script("recaptcha_login", "https://www.google.com/recaptcha/api.js"); wp_enqueue_script("recaptcha_login"); } add_action("login_enqueue_scripts", "login_recaptcha_script"); function display_login_captcha() { ?>

">
ERROR: You are a bot")); } } else { return new WP_Error("Captcha Invalid", __("ERROR: You are a bot. If not then enable JavaScript")); } } add_filter("wp_authenticate_user", "verify_login_captcha", 10, 2);

Давайте рассмотрим, как работает приведенный выше код:

  • Мы подключаем JavaScript-файл Google ReCaptcha на страницах входа, регистрации и восстановления пароля с помощью действия login_enqueue_scripts ;
  • Перед получением окончательного результата аутентификации WordPress запускает фильтр wp_authenticate_user для добавления дополнительного этапа валидации. Мы проверяем, является ли пользователь человеком или ботом. Если это человек, мы возвращаем объект пользователя, в противном случае мы возвращаем объект ошибки.

Добавление No Captcha ReCaptcha в форму регистрации WP

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

function display_register_captcha() { ?>

">
add("Captcha Invalid", __("ERROR: You are a bot")); } } else { $errors->add("Captcha Invalid", __("ERROR: You are a bot. If not then enable JavaScript")); } return $errors; } add_filter("registration_errors", "verify_registration_captcha", 10, 3);

Давайте рассмотрим, как работает приведенный выше код:

  • Мы выводим флажок с помощью действия login_form ;
  • Перед получением окончательного результата аутентификации WordPress запускает фильтр registration_errors , чтобы добавить дополнительный шаг валидации. Внутри этого фильтра мы проверяем, является ли пользователь человеком или ботом. Если это человек, мы возвращаем пустой объект ошибки, иначе мы добавляем дополнение к объекту ошибки и возвращаем его.

Добавление No Captcha ReCaptcha в форме восстановления пароля

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

function verify_lostpassword_captcha() { if (isset($_POST["g-recaptcha-response"])) { $recaptcha_secret = get_option("captcha_secret_key"); $response = wp_remote_get("https://www.google.com/recaptcha/api/siteverify?secret=". $recaptcha_secret ."&response=". $_POST["g-recaptcha-response"]); $response = json_decode($response["body"], true); if (true == $response["success"]) { return; } else { wp_die(__("ERROR: You are a bot")); } } else { wp_die(__("ERROR: You are a bot. If not then enable JavaScript")); } return $errors; } add_action("lostpassword_form", "display_login_captcha"); add_action("lostpassword_post", "verify_lostpassword_captcha");

Давайте рассмотрим, как работает приведенный выше код.

Плагин Captcha — по праву можно назвать лучшим антиспам фильтром для WordPress. Минимум настроек, максимум защиты. Используется, что соответствует названия самого плагина, капча. Так часто любимая Гуглом или Яндексом, если вдруг у них закралось подозрение на нехарактерные (злые?) действия пользователя …

Скачать и установить:

  • Через админ панель: Плагины -> Добавить новый: Captcha (установить, активировать);
  • Или скачать: С оф. сайта — (переместить и разархивировать в Ваш_сайт/wp-content/plugins )

О плагине Captcha. Описание

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

Можно поставить классическую связку: Akismet (постоянно обновляемая база данных спамеров, если где-то определенный адрес посчитали спамным, тут же его вносят в реестр) и Antispam Bee (плагин отслеживает характерные действия спам бота и блокирует его).

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

Это раз, что работают нормально, но недостаточно хорошо. И два — нагрузка на хостинг. Судите сами: Akismet нужно постоянно обновляться, а это лишние операции, выполнение функций, что и грузят ЦП хоста. Antispam Bee — ситуация подобная, хотя уже не помню насколько от «тяжёлый».

Вот, если бы был анти спам плагин для Вордпресс полегче, попроще и чтоб работал на все 100% (99%). И со временем я нашел его: .

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

При наличии настройки самого ВП: Настройки -> Обсуждение -> Перед появлением комментария: Комментарий должен быть одобрен вручную . Защита на все 100%. Но в отличии от связки Akismet + Antispam Bee , на проверку попадают только от живых людей, спам ботных нет.

Еще добавлю. Что я пробовал и экспериментировал по разному со всеми этими плагинами. И скажу уверенно: можете сносить Akismet + Antispam Bee и им подобные, плагина Captcha для защиты от спама (плюс выше упомянутая настройка) — достаточно! (И не грузит хостинг).

Недостатки Captcha

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

  • Не пропускает некоторые почтовики . Так у меня одно время настойчиво не хотел пропускать адреса эл. почты с сервиса i.ua (недавно с Яндекс почты). Но со временем, после обновления — все было хорошо.
  • Часто визуально не гармонирует с шаблоном, с полем комментария. «Лечиться», но правит шаблон (особенно, если он часто любит обновляться) — надоедает.

Настройки Captcha

Итак, скачали и установили, активировали …

В меню админ част ВП появится:

Пройдем во вкладку с одноименным названием

Так вот, все на русском и понятном, кто этот самый русский знает. Я убираю только галочку с (*), не люблю умножать. Все остальное — оставляю, как есть.

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

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

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

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

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

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

Первой стала установка стороннего модуля комментариев с помощью виджета ВКонтакте. Думаю, многие видели его на сайтах и ту чушь, которая подчас там содержится.

Всё из-за того, что, в отличие от стандартных комментариев WordPress, при установке сторонних виджетов нет никакой возможности модерирования: что клиент написал, то на твоём сайте и появится.

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

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

Установка графической капчи для WordPress

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

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

Мой выбор пал на WordPress Captcha Code , который можно скачать в официальном каталоге плагинов ВордПресс по следующему адресу — https://wordpress.org/plugins/captcha-code-authentication/

Я обратил своё внимание на данное решение, т.к. оно было максимально простым и имело по-минимуму разнообразных настроек.

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

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

Однако, как выяснилось позже, лаконичность настроек — это как плюс, так и минус, т.к. маленькие баги в вёрстке самого элемента капчи в HTML форм сайта пришлось править вручную. Например, красную звёздочку обязательности ввода значения поля WP CAPTCHA пришлось руками перемещать на одну строку с надписью «Код безопасности» в коде плагина.

Но, самый главный минус данного решения проявился немного позже.

Спустя всего неделю после установки WordPress CAPTCHA Code на свой сайт я обнаружил, что данный плагин не справляется со своими задачами. Поток спама, правда, превратился в ручеёк, но он всё же был.

Видимо, за время, пока ресурс не был защищён с помощью капчи от спама, он уже успел попасть в базы спам ботов, которые продолжали его атаковать и после установки WordPress CAPTCHA. Но в этом был и положительный момент, т.к. данный факт показал несостоятельность плагина WordPress CAPTCHA Code в борьбе со спамом.

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

В принципе, сократившееся количество спама меня тоже устраивало, а на поиски нового плагина нужно было бы тратить своё драгоценное время, и то ещё не факт, что новый справлялся бы лучше старого. Однако, меня всё-таки заставило отказаться от WordPress CAPTCHA Code одно жирное «НО».

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

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

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

Поначалу моя реакция на это явление была предсказуема 🙂

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

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

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

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

Так что, пожалуйста, не будьте равнодушными! Иногда ваши 2-3 слова становятся мощнейшим катализатором, помогающим принимать порой судьбоносные решения, на которые вебмастера не могут решиться самостоятельно годами. Задумайтесь над этим, пожалуйста.

Итак, я прервался на том, что решил поменять плагин ВордПресс капчи. Оставалось только выбрать подходящий.

Установка плагина WordPress reCAPTCHA от Google

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

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

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

В итоге, на том же форуме я нашёл и решение всех бед.

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

Примером такой капчи является популярная Google reCAPTCHA v2, которая называется noCAPTCHA. Самым известным плагином, работающим на её базе, является Google Captcha (reCAPTCHA) by BestWebSoft , которым я и решил воспользоваться для ускоренной интеграции WP капчи на сайт, не вдаваясь в подробности её работы.

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

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

Помимо того, что вы видите на картинке выше, есть ещё следующие возможности:

  1. выбор группы пользователей (Администраторы, Редакторы, Авторы и т.д.), для которых капча не будет отображаться;
  2. возможность составления «белого списка» IP адресов, при заходе с которых пользователи смогут совершать действие без ввода капчи;
  3. изменения текста сообщения для посетителей из «белого списка»;
  4. выбор цветовой темы оформления (есть светлая и тёмная);
  5. возможность установки Google reCAPTCHA v1, которая, если кто-то ещё помнит, была обычной графической капчей;
  6. задание собственных стилей оформления с помощью CSS и пользовательского PHP кода.

Устанавливать Google капчу с помощью данного плагина можно, как вы видите, на стандартные формы WordPress, перечисленные в настройках. Также можно установить её и в другие места сайта, в том числе и интегрировать её в другие плагины (например, в Contact Form 7, которую очень любят использовать для форма обратной связи).

Но в последнем случае вам нужно будет разбираться в коде или приобрести Premium версию плагина Google Captcha (reCAPTCHA) by BestWebSoft, в которой есть возможность интеграции в различные плагины путём проставления галочки на странице настроек.

В итоге, на моём сайте в форме комментариев WordPress reCAPTCHA, сгенерированная данным плагином, выглядела следующим образом:

Что я в итоге могу сказать про данный плагин? В дизайн сайта WordPress Google CAPTCHA noCAPTCHA вписалась идеально. А, самое главное, что со своими функциями — защитой WordPress от спама — данный плагин справлялся идеально.

После его установки прекратился даже тот ручеёк, который оставался после графической капчи от WordPress CAPTCHA Code. Ну и, что немаловажно, Google Captcha (reCAPTCHA) by BestWebSoft решил проблему, создаваемую предыдущим плагином.

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

Ну, и при вводе WordPress рекапчи от пользователей требуется меньше телодвижений и сил по сравнению с вводом символов с картинки, которые не всегда могут генерироваться корректно. Хотя, это, конечно, не преимущества отдельно данного плагина а всей технологии Google noCAPTCHA в целом.

Резюмируя всё вышесказанное, мой отзыв о Google Captcha (reCAPTCHA) by BestWebSoft положительный. Но, несмотря на это, я всё же отказался от данного варианта капчи на своём блоге. Почему — читайте далее.

Установка WordPress reCAPTCHA без плагина

На самом деле, всему виной девушки 🙂 А в сложившейся ситуации — моя вторая половинка, которая является создателем и автором проекта 50 килограммов счастья , к разработке и поддержке которого я имею непосредственное отношение.

Ну, и, естественно, на данном сайте присутствуют практически все фишки, наработки и плагины, которые я протестировал при создании своего собственного. В том числе, на нём капча до недавнего времени была реализована с помощью Google Captcha (reCAPTCHA) by BestWebSoft.

Но, ввиду особенностей вёрстки шаблона её сайта у неё в форме комментариев на мобильных устройствах WordPress Google CAPTCHA noCAPTCHA, установленная с помощью вышеописанного плагина, стала вылезать за пределы экрана, мешая реальным пользователям её проходить.

Вёрстку менять было нельзя (девушки — народ капризный 🙂), поэтому было принято решение изменить вид самой Google reCAPTCHA.

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

Реализуется это прописыванием одного-единственного параметра в клиентском HTML коде noCAPTCHA, добавляемом на сайт. Но, к сожалению, в Google Captcha (reCAPTCHA) by BestWebSoft данная опция доступна только в премиум версии плагина.

Платить за это маленькое новшество я, естественно, не захотел, поэтому сперва решил дополнить плагин данной фичей самостоятельно. Но, к сожалению, вставка пользовательского кода Google reCAPTCHA в HTML сайта в нём была реализована слишком запутанно, поэтому я принял решение интегрировать noCAPTCHA на сайт самостоятельно с помощью API Google.

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

Привет, читатель! До недавнего времени на моем блоге работал плагин Math Comment Spam Protection, реализующий математическую капчу для WordPress. Надо сказать, плагин очень надежный и защищает комментарии не только от спама, но и от людей. Недавно на почту пришли пару писем, написанных через форму обратной связи с жалобами на капчу в комментариях. У пользователей спрашивалось, сколько будет 7+10? Казалось бы 17, но нет! Капча WordPress отвергала этот вариант и не пропускала комментарий.

Воссоздать условия, при которых капча переставала корректно работать у меня не получилось, поэтому и не получилось ее починить. Оставался только один вариант — отказаться от Math Comment Spam Protection и начать поиск новой защиты от спама. Об этом сегодня и поговорим.

Плагины капчи для комментариев WordPress

1. DCaptcha — именно эту капчу я первой добавил на свой блог сразу после . Очень простая капча, которая сводится к тому, что человек должен поставит галочку напротив фразы «Это не спам». Легче только полное отсутствие капчи, но об этом позже. К сожалению, со временем стал просачиваться спам. Не скажу, что по много, но все равно не приятно.

Установка DCaptcha в WordPress:

  • Скачайте последнюю версию плагина с сайта разработчика.
  • Распакуйте архив в текущий каталог и загрузите полученную папку на сервер в директорию wp-content/plugins/, используя .
  • Зайдите в админку WordPress и в разделе «Плагины» активируйте DCaptcha.
  • Установите права 777 на каталог /wp-content/plugins/dimoning.ru-captcha/num на сервере, используя все тот же ftp клиент FileZilla.
  • Запустите браузер и в адресной строке укажите следующее: http://vash_site.ru/wp-content/plugins/dimoning.ru-captcha/install.php (конечно, вместо vash_site.ru подставьте адрес своего сайта), нажмите Enter.
  • Все, плагин DCaptcha готов к работе, и капча автоматически появится под формой комментариев.

Стандартную надпись «Это не спам» можно поменять. Для это следует открыть на редактирование файл /wp-content/plugins/dimoning.ru-captcha/dimoning.ru-captcha.php. Используя стандартный поиск (ctrl +f), найдите строчку

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

— одна из лучших символьных капчей для WordPress. Выглядит следующим образом:

Как видите, распознать символы для человека не составит труда. В чем преимущества Captcha Code:

  • Очень простая установка капчи: скачиваем плагин Captcha Code , загружаем на сервер и активируем через админку WP. В настройках галочками отмечаем, где будет использоваться капча — на страницах Входа, Регистрации и Восстановления пароля, в форме комментариев. Никакого дополнительного кода в шаблоны используемой темы WP добавлять не надо.
  • Настроек немного и все они на русском языке.
  • Регулируемая сложность капчи — устанавливается количество символов и какого рода они (строчные и заглавные буквы, цифры).

3. WP-reCAPTCHA — капча от Google. Очень надежная, но очень сложная. Отпугнет не только ботов, но и всех пользователей. Хотя, она встречается на многих сайтах в интернете, поэтому лично я к ней уже привык. Выглядит следующим образом:

Для работы плагина следует зарегистрироваться на сервисе www.google.com/recaptcha и получить приватный и публичный ключи. Заметьте, что для это необходимо иметь аккаунт на Google. Создать его можно . Это не займет много времени.

Получить заветные ключи очень просто, достаточно сделать три небольших шага:

1. Используем кнопку «USE reCAPTCHA ON YOUR SITE» для начала регистрации.

2. На следующей странице жмем на кнопку «Sing up Now!».

3. Указываем адрес своего блога и генерируем ключи, нажатием кнопку «Create key». Можно так же поставить галочку напротив «Enable this key on all domains (global key)», это позволит использовать полученные ключи на всех сайтах, а не только на одном указанном.

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

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

ID ) ; ?>

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

К сожалению, плагин придется русифицировать в ручную, хотя это не должно занять много времени. Откройте на редактирование файл плагина not-captcha.php и замените английские выражения на аналогичные русские.

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

Плагин поддерживает как английский, так и русский язык, что является несомненным плюсом. После активации плагина, капча в комментарии WordPress добавляется автоматически. Если этого не произошло, то в настройках CheckBot, в пункте «The method of connecting plugin» выберете «Manual». В шаблон comments.php, в то место, где хотите видеть капчу, добавьте следующую строчку кода:

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