Надоели боты. Очень надоели боты спам регистрации, база пользователей растет как на дожах, Честно говоря мне не понятен смысл таких регистрация спам ботов. Зачем публиковать спам в комментариях я понимаю, а вот зачем боты регистрируются в WordPress, понять не могу. Но защитить свой блог от спама надо.
С момента запуска блога, проблема защиты от спама стояла довольно остро. В комментариях спам получилось победить легко установив и настроив всего один плагин: «Math Comment Spam». Установка похожего плагина для защиты от регистрации спам ботов в начале тоже дала свои результаты, но все устаревает и в данный момент плагин пропускает от 1 до 10 ботов в день, не много но не приятно.
Что бы защитить блог от спама для начала надо разобраться в алгоритме работы спам ботов.
Алгоритм работы спам ботов
Обычно спам боты заточены под отдельно взятую CMS и действуют следующим образом:
- Находят и загружают страницу регистрации (обычно она находиться у всех по умолчанию: адрес_блога\wp-login.php)
- Разбирают эту страницу на составляющие, а именно ищут поля для ввода информации (логина, электронного адреса и капчи / user_login, user_email, math)
- Заполняют найденные поля данными и отсылают информацию на сайт
Важно: боты получают только минимум тестовой информации без графики.
В систему обхода или подбора каптчи я не вникал, т.к. писать плагин с новой капчей на данном этапе не собираюсь. Как и устанавливать капчу стороннего разработчика.
Чем плоха каптча в защите от спама
Небольшое отступление по поводу каптчи. Или почему я решил не использовать ее в качестве защиты:
Во-первых установленная у меня каптча показала свою не состоятельность в деле защиты от спам регистрации блога на WordPress, т.е. сначала она работала но потом боты научились ее обходить, как научатся обходить и другие.
Во-вторых я думаю многим знакома следующая картинка:
вспомните как вы ругались, когда старались разобраться что же на ней написано. Т.ч. вторая причина отказа от каптчи, я не хочу усложнять жизнь пользователям моего блога.
Вывод: каптча не эффективна и усложняет жизнь.
Защита от спам ботов и спам регистрация WordPress (теория)
Как же защититься от спам ботов и спам регистраций, без использования каптчи?
В принципе не надо быть дипломированным специалистом что бы понять, нарушение одного из пунктов алгоритма действия спам ботов, приведет к краху всего алгоритма.
Мы не можем запретить спам боту получать и отсылать данные, но мы можем подменить поля в которые он будет эти данные вставлять.
Как это осуществляется:
На форме регистрации мы создаем поле для ввода логина с нейтральным названием, например: id=»Ghbdtn».
А старое поле для ввода логина id=»user_login», делаем скрытым при помощи css.
Получается, пользователь попадая на страницу видит только ваше новое поле id=»Ghbdtn», а бот по прописанному алгоритму обращается к старому id=»user_login». Дальше идут уже технические моменты обработки данных.
Защита от спам регистрации WordPress (практика):
На практике данная защита реализовывается следующим образом:
Открываем файл wp-login.php и ищем форму
в ней есть строка примерно следующего содержания
дублируем ее и вносим правки, в первой строке после id добавляем style=»display: none;» а во второй строке значение поле name меняем на любое другое например name=»Ghbdtn»
Вот что у вас должно получиться:
Было
Стало
Последний штрих, изменяем обработку данных, в том же файле ищем строчку $user_login = $_POST[‘user_login’]; и добавляем после нее следующий код: if(!empty($user_login)) wp_die(‘Пожалуйста ждите ответа…’); $user_login = $_POST[‘Ghbdtn’];
Было
$user_login = $_POST['user_login'];
Стало
$user_login = $_POST['user_login']; if(!empty($user_login)) wp_die('Пожалуйста ждите ответа...'); $user_login = $_POST['Ghbdtn'];
В этом месте мы проверяем спрятанное нами поле, которое человек видеть не может и если оно заполнено выводим сообщение о том что боту необходимо подождать… и еще подождать и еще… ))))
Подводя итоги защиты от спам регистрации для wordpress
В принципе тем кто хоть чуточку разбирается в устройстве Wrodpress, реализовать данную идею защиты от спама будет не сложно. Единственное предупреждение, не забывайте делать резервные копии тех файлов которые вы собираетесь менять. У себя я сделал такую защиту от спам регистрации в процессе написания статьи. Через некоторое время отпишусь по поводу ее эффективности, т.ч. подписывайтесь на комментарии и жду ваши отзывов.
Вам будет интересно:
художественная роспись интерьера
Если Вы поклонник игры World of Tanks, тогда новость о версии для ОС Андроид Вас должна порадовать. Ознакомиться с особенностями игры, а также скачать ее можно тут .
Нужно аккуратнее с этим плагином. Один раз ждал 4 часа, ошибся в пароле.
«Через некоторое время отпишусь по поводу ее эффективности, т.ч. подписывайтесь на комментарии и жду ваши отзывов.»
Время идет, а коментов нет — автор или забыл или забил.
Не стал подписываться
Здравствуйте
не работает этот код.
у меня везде вместо
подскажите пожалуйста решение
Отличная статья!
Воспользовался вашей идеей, только зашел еще дальше… 😉
При заходе на wp-login.php, стартует сессия, куда загоняется случайное число от 1000 до (хоть 1000000000), в качестве переменной. Именно эта переменная потом используется как name.
Дело в том, что этим уродцам, ничего не стоит зайти на сайт и распарсить вашу форму, вытащив оттуда name=”Ghbdtn”. А так, это значение, каждый раз новое.
Кроме того, не попав на страницу и не создав изначально сессию — регистрация попросту не возможна.
Думаю, такой подход, будет более спамоустойчив.
Добрый день! Подскажите еще, пожалуйста, как неопытному пользователю определить на своем сайте фишинговые страницы и удалить их. Спасибо.
to Валентина
На вашем сайте — их сможете установить только вы
to Алексей
Да, это так. Но я не думаю что кому-то захочется возиться с этим только для того что бы размещать спам на моем блоге.
Приведите свой код — добавлю в статью
Извиняюсь, в блоге бываю периодически. Иногда эти периоды отсутствия затягиваются.
Способ действует нормально. сейчас как раз чищу коменты от спама и буду делать в них так же
Отлично! Спасибо! с wp-login работает.
Только еще одна проблема у меня возникла — еще осталась возможность регистрации через кустом-логин-пейдж (там свои поля). Буду разбираться — попробую по аналогии там сделать.
Поставил этот плагин Rename wp-login.php (unmaintained) и все работает!
В последнее время с яхо.ком повалили боты как бешеные, регистрируются в день по 50 штук. Обходят капчу без трудов. Что делать, задолбался удалять америкосов
Спасибо попробую
Этот способ перестал у меня работать уже более пол года. Сейчас пропускает более 100 спам регистраций в сутки. Есть другой способ?
После этих действий сайт был заблокирован Google. Что делать?
Искать причину блокировки, данные действия ни как не могли повлиять на выдачу Google