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

25.08.2013 by Константин
Комментировать »
Защита от спам регистрации WordPress

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

Надоели боты. Очень надоели боты спам регистрации, база пользователей растет как на дожах, Честно говоря мне не понятен смысл таких регистрация спам ботов. Зачем публиковать спам в комментариях я понимаю, а вот зачем боты регистрируются в WordPress, понять не могу. Но защитить свой блог от спама надо.

С момента запуска блога, проблема защиты от спама стояла довольно остро. В комментариях спам получилось победить легко установив и настроив всего один плагин: “Math Comment Spam”. Установка похожего плагина для защиты от регистрации спам ботов в начале тоже дала свои результаты, но все устаревает и в данный момент плагин пропускает от 1 до 10 ботов в день, не много но не приятно.

Что бы защитить блог от спама для начала надо разобраться в алгоритме работы спам ботов.

Алгоритм работы спам ботов

Обычно спам боты заточены под отдельно взятую CMS и действуют следующим образом:

  1. Находят и загружают страницу регистрации (обычно она находиться у всех по умолчанию: адрес_блога\wp-login.php)
  2. Разбирают эту страницу на составляющие, а именно ищут поля для ввода информации (логина, электронного адреса и капчи / user_login, user_email, math)
  3. Заполняют найденные поля данными и отсылают информацию на сайт

Важно: боты получают только минимум тестовой информации без графики.

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

Чем плоха каптча в защите от спама

Небольшое отступление по поводу каптчи. Или почему я решил не использовать ее в качестве защиты:

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

Во-вторых я думаю многим знакома следующая картинка:

пример каптчи

пример каптчи

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

Вывод: каптча не эффективна и усложняет жизнь.

Защита от спам ботов и спам регистрация WordPress (теория)

Как же защититься от спам ботов и спам регистраций, без использования каптчи?

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

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

Как это осуществляется:

На форме регистрации мы создаем поле для ввода логина с нейтральным названием, например: id=”Ghbdtn”.

А старое поле для ввода логина id=”user_login”, делаем скрытым при помощи css.

Получается, пользователь попадая на страницу видит только ваше новое поле id=”Ghbdtn”, а бот по прописанному алгоритму обращается к старому id=”user_login”. Дальше идут уже технические моменты обработки данных.

Защита от спам регистрации WordPress (практика):

На практике данная защита реализовывается следующим образом:

Открываем файл wp-login.php и ищем форму

в ней есть строка примерно следующего содержания

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

дублируем ее и вносим правки, в первой строке после id добавляем style=”display: none;” а во второй строке значение поле name меняем на любое другое например name=”Ghbdtn”

Вот что у вас должно получиться:

Было

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

Стало

1
2
<input type="text" name="user_login" id="user_login" style="display: none;" value="<?php echo esc_attr(stripslashes($user_login)); ?/>" size="20" tabindex="10" />
<input type="text" name="Ghbdtn" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?/>" size="20" tabindex="10" />

Последний штрих, изменяем обработку данных, в том же файле ищем строчку $user_login = $_POST['user_login']; и добавляем после нее следующий код: if(!empty($user_login)) wp_die(‘Пожалуйста ждите ответа…’); $user_login = $_POST['Ghbdtn'];

Было

1
$user_login = $_POST['user_login'];

Стало
1
$user_login = $_POST['user_login']; if(!empty($user_login)) wp_die('Пожалуйста ждите ответа...'); $user_login = $_POST['Ghbdtn'];

В этом месте мы проверяем спрятанное нами поле, которое человек видеть не может и если оно заполнено выводим сообщение о том что боту необходимо подождать… и еще подождать и еще… ))))

Подводя итоги защиты от спам регистрации для wordpress

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

Вам будет интересно:

художественная роспись интерьера

Если Вы поклонник игры World of Tanks, тогда новость о версии для ОС Андроид Вас должна порадовать. Ознакомиться с особенностями игры, а также скачать ее можно тут .

Читайте так же:


1 звезда2 звезды3 звезды4 звезды5 звезд (6 голосов, средний: 4.83 из 5)
Загрузка ... Загрузка ...
Распечатать запись Распечатать запись
Реклама

15 комментариев(ия)

  1. Сергей says:

    Нужно аккуратнее с этим плагином. Один раз ждал 4 часа, ошибся в пароле.

  2. vremya says:

    “Через некоторое время отпишусь по поводу ее эффективности, т.ч. подписывайтесь на комментарии и жду ваши отзывов.”

    Время идет, а коментов нет – автор или забыл или забил.

    Не стал подписываться

  3. Андрей says:

    Здравствуйте

    не работает этот код.
    у меня везде вместо

    подскажите пожалуйста решение

  4. Отличная статья!
    Воспользовался вашей идеей, только зашел еще дальше… ;)

    При заходе на wp-login.php, стартует сессия, куда загоняется случайное число от 1000 до (хоть 1000000000), в качестве переменной. Именно эта переменная потом используется как name.

    Дело в том, что этим уродцам, ничего не стоит зайти на сайт и распарсить вашу форму, вытащив оттуда name=”Ghbdtn”. А так, это значение, каждый раз новое.
    Кроме того, не попав на страницу и не создав изначально сессию – регистрация попросту не возможна.

    Думаю, такой подход, будет более спамоустойчив.

  5. Добрый день! Подскажите еще, пожалуйста, как неопытному пользователю определить на своем сайте фишинговые страницы и удалить их. Спасибо.

  6. Константин says:

    to Валентина
    На вашем сайте – их сможете установить только вы

  7. Константин says:

    to Алексей
    Да, это так. Но я не думаю что кому-то захочется возиться с этим только для того что бы размещать спам на моем блоге.
    Приведите свой код – добавлю в статью

  8. Константин says:

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

  9. Serg Casper says:

    Отлично! Спасибо! с wp-login работает.
    Только еще одна проблема у меня возникла – еще осталась возможность регистрации через кустом-логин-пейдж (там свои поля). Буду разбираться – попробую по аналогии там сделать.

  10. Алекс says:

    Поставил этот плагин Rename wp-login.php (unmaintained) и все работает!

  11. В последнее время с яхо.ком повалили боты как бешеные, регистрируются в день по 50 штук. Обходят капчу без трудов. Что делать, задолбался удалять америкосов

  12. Константин says:

    Спасибо попробую

  13. Kolass says:

    Этот способ перестал у меня работать уже более пол года. Сейчас пропускает более 100 спам регистраций в сутки. Есть другой способ?

  14. Roman says:

    После этих действий сайт был заблокирован Google. Что делать?

  15. Константин says:

    Искать причину блокировки, данные действия ни как не могли повлиять на выдачу Google

Оставить комментарий