Не так давно много сайтов на 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 вручную может блокировать вредоносных юзер-агентов и ботов с большей эффективностью и обеспечивать при этом лучшую производительность сайта.
Комментарии к записи: 6
Не совсем понятно, о каких ботах идет речь в статье, и какой вред они могут нанести.
После внесения кода и синхронизации сайта с .htaccess получил 500 Internal Server Error. Вроде бы все сделал, как написано. После удаления кода, сайт опять нормально заработал.
ПОхоже, что хостинг либо не поддерживает модуль mod_setenvif.c, лучше хостера спросить
А причем тут Даллеки?
Не совсем то искал. Использую плагин WP Security, решающий и проблему, затронутую в вашей статье. Но интересует именно как выщемить имя бота для блокировки?
Если подробнее: имеется сайт, на котором постоянно появляется часть новой статьи (до читать далее), пусть даже и переходящая на мой сайт по ссылке с этого сайта.
я забанил ip адрес домена плагиатора и название бота с логов моего хостера (Unknown robot (identified by empty user agent string)). Но не уверен, что юзер-агент бота именно такой. Правильно я сделал или накосячил?
Он наверное через rss ленту анонсы статей берёт. Проверь, есть ли обращения к /feed? и с какого ip, его и забань