Как на сайте 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-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.
Обсуждение: 1
  1. Ольга

    В версии вордпресс 5.2 строки немного иные. Могли бы Вы написать каким образом изменить их? Ваше решение идеально, но оно работало до предних версий. Сейчас сложно заменить код, он сильно изменен. Благодарю заранее.

Задать вопрос