ТЕЛЕ 2

Поставить капчу на вордпресс. Лучшие плагины для капчи в WordPress. Captcha плагины WordPress

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

Что такое Captcha

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

Зачем нужна Captcha

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

Виды captha

Ребус

Самый сложный, редко встречаемый вид captha. Всем знаком по сервисам Google. На картинке капчи вам предложат выбрать три картинки с машинкой или фруктами.

Буква

Буквенная или буквенно-цифровая капча, заставит вас повторить набор цифр и/или букв в окне капчи. Цифры могут быть искажены.

Цифры

То же что и буквы.

Математика

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

Где нужна капча

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

  • При регистрации;
  • В формах комментарии;
  • В формах авторизации;
  • В формах подписки сторонних плагинов;
  • В обратной связи;
  • В форме напоминания пароля и имени пользователя;
  • Пользовательской форме.

Системная капча WordPress

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

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

Как правило, массовая, машинная регистрация псевдо пользователя это прелюдия взлома, направленная на .

Captcha плагины WordPress

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

Стоит отметить. Что защититься от машинной регистрации можно и без плагинов Captcha, установив более серьезные плагины безопасности, отсекающие подозрительных пользователей (один из них внизу).Самый известный плагин Akismet, он рекомендован WordPress.org. О других серьезных плагинов безопасности читать

Flector 4.8

No CAPTCHA reCAPTCHA русская версия

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

1 Распаковываем архив.

2 Копируем папку no-captcha-recaptcha в /wp-content/plugins/ .

3 Заходим в админку блога на вкладку "Плагины " и активируем плагин.

Прежде чем приступать непосредственно к настройке плагина вам необходимо будет зарегистрировать свой домен на сайте рекапчи :

Как видно на скриншоте – достаточно ввести две строчки и нажать кнопку "Регистрация". После чего вам выдадут ключи для использования сервиса:

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

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

При добавлении комментария капчу можно увидеть под кнопкой "Отправить":

Третья и последняя часть настроек касается внешнего вида капчи:

Объяснять, что к чему не буду – тут и так все должно быть понятно.

Должен только сразу предупредить об одной очень неприятной особенности оригинального плагина – вы обязаны указать ключи, тему и язык капчи при сохранении настроек. Если вы этого не сделаете, то сломаете свой сайт, так как он будет выдавать белый экран. Указать надо явно – то есть "Автоопределение" не прокатит. В русской версии плагина я эту ошибку исправил, но все равно имейте это в виду.

Теперь немного о вопросах, которые возникают при установке плагина.

Как проверяется капча? При установке галки запускается специальный скрипт, который анализирует кучу разных параметров от разрешения экрана до используемого браузера. И почти с 99% точностью этот скрипт может определить, кто поставил галку – настоящий человек или бот. Если у скрипта есть сомнения в том, что вы человек, то он выдаст вам капчу для ввода:

Почему галка такая большая? Это тоже частый вопрос, так как зачастую капча смотрится несколько инородно в формах добавления комментария. А ответ прост – размер квадрата специально сделан большим, чтобы его можно было нажать пальцем на мобильных устройствах. На них же, кстати, в качестве дополнительной проверки вам предложат ввести не символы, а указать нужные картинки (например, удалить собаку из 5 картинок с кошками).

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

Установка 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.

Первым делом вам необходимо установить и активировать плагин Better WordPress reCAPTCHA . После активации плагин добавит новый элемент меню под названием BWP reCAPTв вашу административную панель. Клик по нему переместит вас на страницу настроек плагина.

Вас попросят указать public и private ключи API для использования Google recaptcha API. Для того, чтобы получить эти ключи, вам необходимо перейти на сайт reCAPTCHA и кликнуть на кнопку «Get reCAPTCHA».

На следующей странице нужно нажать на кнопку Signup или Sign in и залогиниться со своим аккаунтом Google. После того, как вы войдете, вас попросят указать названием домена, где планируется использовать reCAPTCHA.

Скопируйте и вставьте ключи public и private API на странице настроек плагина в административной панели WordPress. Ниже ключей API под разделом Plugin Functionality необходимо отметить две галочки рядом с опциями Registration form и Login form .

Плагин Better WordPress reCAPTCHA также позволяет вам добавлять reCAPTCHA в форму комментариев WordPress.

Вот и все, теперь можно нажать на кнопку Save Changes для сохранения проделанных изменений.

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

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

По всем вопросам и отзывам просьба писать в комментарии ниже.

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