Владельцы WordPress-сайтов часто сталкиваются с проблемой нежелательного трафика от ботов и автоматизированных скриптов, которые пытаются взломать сайт, загрузить лишние страницы или злоупотреблять ресурсами сервера. Такие атаки снижают производительность, увеличивают нагрузку и могут привести к серьезным проблемам с безопасностью.
Что такое боты и скриптовые атаки на WordPress
Боты – это автоматизированные программы, которые могут выполнять различные действия на сайте без участия человека. Некоторые из них полезны, например, поисковые роботы, а некоторые – вредоносны. Скриптовые атаки часто используют ботов для перебора паролей, попыток входа, загрузки вредоносных файлов, спама и других действий.
Основные типы скриптовых атак:
- Brute force (перебор паролей)
- Spam-боты, оставляющие комментарии
- Сканирование уязвимостей
- Автоматизированные загрузки и DDoS-атаки
Ранее мы рассматривали защиту от brute force, но сегодня сосредоточимся именно на блокировке и фильтрации вредоносных ботов.
Как обнаружить вредоносных ботов и скрипты
Первый шаг в защите – мониторинг. Для этого используйте логи сервера и специальные плагины, которые анализируют посетителей:
- WP Cerber Security – мощный плагин для защиты, который умеет выявлять подозрительные IP и блокировать ботов.
- Wordfence Security – комплекс в том числе для отслеживания активности и блокировки подозрительных ботов.
Также можно использовать серверные инструменты, например, анализировать access.log через системные команды или сторонние сервисы.
Практические методы защиты от ботов и скриптов
1. Ограничение доступа по User-Agent и IP
Боты часто выдают себя через заголовок User-Agent. Можно настроить блокировку через .htaccess или плагин.
# Блокировка известных вредоносных User-Agent
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (bot|curl|wget|python-requests) [NC]
RewriteRule .* - [F,L]Для блокировки IP-адресов из подозрительных регионов можно использовать плагины, например, Clearfy Pro, который умеет настраивать геоблокировку и фильтры по IP.
2. Защита форм и комментариев с помощью CAPTCHA
Добавление CAPTCHA снижает вероятность автоматических регистраций и спама. Популярные плагины:
- reCAPTCHA by BestWebSoft – интеграция Google reCAPTCHA.
- WPBruiser – невидимая CAPTCHA без сложных проверок для пользователей.
Для улучшения защиты комментариев можно использовать следующий код для принудительного включения CAPTCHA только при подозрительной активности:
function wpprotect_require_captcha_for_suspicious($commentdata) {
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/curl|bot|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
wp_die('Пожалуйста, подтвердите, что вы не бот.');
}
return $commentdata;
}
add_filter('preprocess_comment', 'wpprotect_require_captcha_for_suspicious');3. Использование плагинов для защиты от ботов
Плагины специально созданы для борьбы с ботами и скриптовыми атаками. Рекомендуемые варианты:
- WP Cerber Security – блокирует атаки, фильтрует ботов по IP и User-Agent, ограничивает количество запросов.
Подробнее: wpshop.ru/plugins/wp-cerber-security - Wordfence Security – мониторинг трафика и защита от вредоносных ботов.
Подробнее: wpshop.ru/plugins/wordfence-security
4. Ограничение частоты запросов (Rate Limiting)
Для снижения нагрузки от ботов применяют ограничение запросов с одного IP за определенное время. Делается через плагины или серверные настройки.
Пример настройки в .htaccess:
SetEnvIfNoCase User-Agent "^.*(bot|curl|wget).*$" bad_bot
<Limit GET POST>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>Для более гибких настроек подойдут плагины, например Clearfy Pro с функцией ограничения количества запросов.
Что делать при обнаружении бот-атаки
Если вы заметили подозрительную активность, важно быстро реагировать:
- Изучите логи сервера, чтобы определить IP и User-Agent атакующих.
- Заблокируйте IP через .htaccess или используйте плагины для автоматической блокировки.
- Установите и настройте CAPTCHA на формах.
- Активируйте ограничения по частоте запросов.
- Обновляйте WordPress, темы и плагины, чтобы исключить уязвимости.
Пример кода для блокировки IP динамически через functions.php
function wpprotect_block_bad_ips() {
$bad_ips = array('123.45.67.89', '111.222.333.444'); // список вредоносных IP
if (in_array($_SERVER['REMOTE_ADDR'], $bad_ips)) {
wp_die('Доступ запрещён.');
}
}
add_action('init', 'wpprotect_block_bad_ips');Рекомендации по повышению общей безопасности WordPress
Защита от ботов – лишь часть комплексной безопасности. Следите за обновлениями, используйте надежные пароли, регулярно делайте резервное копирование, ограничивайте права пользователей и используйте проверенные плагины безопасности.
Для удобства и расширенной защиты рекомендуем обратить внимание на Clearfy Pro – многофункциональный плагин для оптимизации и защиты WordPress с возможностью управления ботами и лимитами запросов.