Защита от спамеров в WordPress

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

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

Принцип действия

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

Описание решения

За авторизацию и регистрацию в WordPress отвечает файл wp-login.php . Изменять необходимо поле user_login , которое часто встречается в этом скрипте, но учитывая что нас интересует только регистрация, то все остальное мы оставим в первоначальном виде.

  1. Открываем файл 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'];
  2. Тут же находим строчки:
    <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>
  3. Готово. Спам-скриптам вход на ваш сайт закрыт.

Избавиться от уже существующих спам-юзеров вы можете с помощью плагина Clean Up Users , который можно скачать с официального сайта разработчика плагина по этой ссылке .

Вам также может помочь