Не так давно много сайтов на WordPress были взломаны из-за одних только ботов, которые бродят по сети. Есть много плагинов, которые могут защитить ваше WordPress-детище, блокируя этих «проказников»-ботов.

| Скачать исходники |

Из этой статьи вы узнаете о простом и полезном методе настройки вашего .htaccess файла для фильтрации этих ботов, которые могут поразить ваш сайт и съесть ресурсы вашего сервера. Так что приготовьте ваш .htaccess файл к редактированию!

Шаг 1. Подготовка кода

Код в основном состоит из имен ботов. Я добавил самых известных ботов, о которых я вспомнил. Если каких-то ботов здесь не хватает, пожалуйста, напишите об этом в комментариях.

Код достаточно прост. Скопируйте представленный ниже код и вставьте его в ваш файл .htaccess

# Bot Blocker
<IfModule mod_setenvif.c>
  SetEnvIfNoCase User-Agent ^$ keep_out
  SetEnvIfNoCase User-Agent (pycurl|casper|cmsworldmap|diavol|dotbot) keep_out
  SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
  SetEnvIfNoCase User-Agent (purebot|comodo|feedfinder|planetwork) keep_out
  <Limit GET POST PUT>
    Order Allow,Deny
    Allow from all
    Deny from env=keep_out
  </Limit>
</IfModule>

Шаг 2. Тестирование кода

Чтобы проверить, работает ли код, я рекомендую использовать сайт Bots VS Browsers. Этот сайт – хороший инструмент для симуляции таких типов атак. Все, что вам нужно сделать, это зайти на сайт, выбрать любого бота из кода, который вы только что добавили в ваш файл .htaccess и использовать его как User-agent.

Введите адрес вашего сайта и нажмите кнопку "Go". Если вы видите ошибку 403, это значит, что код работает. Если нет – что-то произошло с кодом при добавлении его в файл .htaccess, так что попробуйте вставить код заново.

Шаг 3. Добавление других ботов

Теперь, когда вы знакомы с кодом и знаете, как протестировать его работу, мы можем добавить больше ботов в код. Вы, наверное, заметили повторы в коде. Используя эту же логику, вы можете добавить десятки ботов, которые будут блокироваться, используя те же параметры. Круто, правда?

SetEnvIfNoCase User-Agent (i-IS-evilBOT) keep_out

Как вы видите в приведенном коде, теперь я блокирую бота "i-IS-evilBOT" (которого я только что придумал). Имя бота не чувствительно к регистру, так что вы можете добавлять его, как вам больше нравится. Перейдите на сайт Bots VS Browsers и в этот раз введите юзер-агента, которого я только что создал. Вуаля! Вы увидите, что этот юзер-агент, которого я добавил в мой файл .htaccess, тоже блокируется. Вы можете добавлять сколько угодно ботов для блокировки, разделяя их символом "|"

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

Источник: WP.tutsplus.com

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

6 комментариев

сначала новые
по рейтингу сначала новые по хронологии
Сергей

Не совсем то искал. Использую плагин WP Security, решающий и проблему, затронутую в вашей статье. Но интересует именно как выщемить имя бота для блокировки?
Если подробнее: имеется сайт, на котором постоянно появляется часть новой статьи (до читать далее), пусть даже и переходящая на мой сайт по ссылке с этого сайта.
я забанил ip адрес домена плагиатора и название бота с логов моего хостера (Unknown robot (identified by empty user agent string)). Но не уверен, что юзер-агент бота именно такой. Правильно я сделал или накосячил?

Вячеслав

Он наверное через rss ленту анонсы статей берёт. Проверь, есть ли обращения к /feed? и с какого ip, его и забань

Виталий

А причем тут Даллеки?

После внесения кода и синхронизации сайта с .htaccess получил 500 Internal Server Error. Вроде бы все сделал, как написано. После удаления кода, сайт опять нормально заработал.

Алексей

ПОхоже, что хостинг либо не поддерживает модуль mod_setenvif.c, лучше хостера спросить

Не совсем понятно, о каких ботах идет речь в статье, и какой вред они могут нанести.