Защита от спамеров в WordPress
При администрировании и разработки сайтов часто приходится сталкиваться с проблемой спам-скриптов, которые автоматически проходят регистрацию пользователя на вашем сайте, после чего занимаются рассылкой спама. На Wordpress есть метод, с помощью которого все сторонние спам-скрипты не смогут пройти регистрацию пользователя и получат отказ.
Принцип действия
Метод заключается в следующем: мы добавляем новое текстовое поле для ввода логина под именем, например " nospam_user_login ", а старое поле " user_login " делаем невидимым, параллельно встраивая проверку на заполненность этого невидимого текстового поля. В итоге получается, что человек не заметит ни малейшей разницы при регистрации в блоге, а вот спам-скрипт заполнит именно поле " user_login " и получит ошибку регистрации. Для более надежной защиты от спам-регистраций можно изменить название поля " nospam_user_login " на любое другое, не содержащее слово " user_login ".
Описание решения
За авторизацию и регистрацию в WordPress отвечает файл wp-login.php . Изменять необходимо поле user_login , которое часто встречается в этом скрипте, но учитывая что нас интересует только регистрация, то все остальное мы оставим в первоначальном виде.
-
Открываем файл
wp-login.php
и ищем строчку:
$user_login = $_POST['user_login'];
заменяем её на:
$user_login = $_POST['user_login']; if(!empty($user_login)) wp_die('Доброго времени суток, спам-бот ;)'); $user_login = $_POST['nospam_user_login'];
-
Тут же находим строчки:
<p> <label><?php _e('Username') ?><br /> <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label> </p>
заменяем их на:
<div style="display: none;"><p> <label><?php _e('Username') ?><br /> <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label> </p></div> <p> <label><?php _e('Username') ?><br /> <input type="text" name="nospam_user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label> </p>
- Готово. Спам-скриптам вход на ваш сайт закрыт.
Избавиться от уже существующих спам-юзеров вы можете с помощью плагина
Clean Up Users
, который можно скачать с официального сайта разработчика плагина по этой
ссылке
.