Как на сайте WordPress предотвратить регистрацию спам-аккаунтов?

По мере роста популярности сайта в Сети, он все больше становится объектом для всякого рода зловредного влияния. Одним из самых опасных для стабильной работы веб-ресурса влияний является создание на нем спам-аккаунтов. Ведь, создав на сайте скрытого пользователя, злоумышленник может получить доступ не только к его контентной части, но также и к управлению сайта в целом. Общеизвестно, что для этого существует вредоносное программное обеспечение под названием “spambots”, которое ищет в Сети уязвимые сайты и старается получить к ним доступ, создавая “нужные” пользовательские аккаунты.

Как предотвратить регистрацию спам-аккаунтов?

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

Способ 1. Изменение пользовательской роли по умолчанию

Первое, что необходимо сделать для защиты сайта, — это изменить пользовательскую роль для новых зарегистрированных аккаунтов. Смысл этого способа в том, что пользователь, регистрируясь на Вашем сайте, получает роль с наименьшими правами. Среди всех ролей, по умолчанию доступных в WordPress, роль Подписчик обладает наименьшими правами, что снижает риск нанесения вреда для сайта таким пользователем. Для этого в админ-панели необходимо перейти в раздел Настройки -> Общие и в поле Роль нового пользователя выбрать значение Подписчик.

Страница общих настроек

Способ 2. Установка капчи страницу регистрации

В WordPress, по умолчанию, процесс регистрации начинается со страницы site.ru/wp-login.php?action=register.

Страница регистрации

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

Страница регистрации с установленной капчей

Способ 3. Изменение полей формы регистрации с помощью плагина

Еще одним эффективным способом защиты от спам-ботов служит изменение стандартных полей формы регистрации. В итоге для пользователя сама форма визуально не изменится, а для ботов ее структура будет изменена. Для осуществления такой защиты служит бесплатный плагин Spam protection, AntiSpam, FireWall, Cleaner by CleanTalk. Итак, после установки и активации дополнения, в админ-панели необходимо перейти в раздел Настройки -> Antispam by CleanTalk.

Страница настроек плагина Spam protection, AntiSpam, FireWall, Cleaner by CleanTalk

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

Способ 4. Изменение полей формы регистрации вручную

Если Вы не хотите устанавливать какие-либо дополнительные плагины на свой сайт, то защитить форму регистрации от спам-ботов можно и ручным способом. Для этого необходимо внести некоторые изменения в файл wp-login.php, отвечающий за вход и регистрацию.

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

Перед началом внесения каких-либо изменений в файл wp-login.php настоятельно рекомендуем выполнить его резервную копию.

Будем считать, что подключение с сервером установлено, и файл wp-login.php открыт на редактирование. Во-первых, в нем необходимо найти строку

$user_login = $_POST['user_login'];

и ее заменить на

$user_login = $_POST['user_login'];
if(!empty($user_login)) wp_die('Нет доступа!');
$user_login = $_POST['wpschool_user_login'];

Далее строки

<label><?php _e('Username') ?>
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>

заменим на блок

<div style="display: none;">
 
<label><?php _e('Username') ?>
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
 
</div>
 
<label><?php _e('Username') ?>
<input type="text" name="wpschool_user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>

Символы “wpschool” можете заменить на свои. Обратим внимание, что строка “wpschool_user_login” попадается два раза. В обоих случаях она должна совпадать.

Следует отметить, что так как используемый нами файл wp-login.php является частью “движка” WordPress, то в случае применения нового обновления все Ваши изменения могут стереться. Поэтому всю вышеописанную процедуру необходимо будет проделать заново.

В качестве заключения

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

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.