Защита WordPress
Почему WordPress нуждается в защите?
WordPress — самая популярная CMS (43% всех сайтов). Это делает его главной целью для атак.
Типичные угрозы для WordPress:
- Брутфорс атаки на wp-login.php
- Атаки на xmlrpc.php
- SQL-инъекции через уязвимые плагины
- Сканирование файлов конфигурации
- XSS через комментарии
- DDoS на wp-admin
TrafficVeil защищает WordPress от:
- массовых попыток подбора паролей при корректно настроенных лимитах
- Эксплуатации известных уязвимостей
- Вредоносных ботов и скрейперов
- DDoS атак на админ-панель
- SQL-инъекций и XSS
Совместимость:
- WordPress 5.0+
- WooCommerce
- Multisite
- Любые темы и плагины
Защита wp-login.php
Проблема:
wp-login.php — главная цель брутфорс атак. Боты пытаются подобрать пароль.
Решение TrafficVeil:
1. Rate Limiting для /wp-login.php:
Ограничение попыток входа:
- 5 попыток в минуту с одного IP
- Блокировка на 15 минут после 10 неудачных попыток
- Уведомление в Telegram при атаке
Настройка:
- Безопасность → Rate Limiting
- Добавить правило для /wp-login.php
- Лимит: 5 req/min
- Действие: Block
2. JavaScript Challenge:
Перед показом формы входа — проверка браузера:
- Боты не пройдут
- Реальные пользователи не заметят
3. CAPTCHA для подозрительных:
Если Bot Score < 50, показываем CAPTCHA.
4. Двухфакторная аутентификация:
Рекомендуем дополнительно использовать 2FA плагин для WordPress.
Защита xmlrpc.php
Что такое xmlrpc.php?
XML-RPC — протокол для удалённого управления WordPress. Используется:
- Мобильными приложениями
- Jetpack
- Некоторыми плагинами
Угрозы xmlrpc.php:
- Amplification DDoS атаки (pingback)
- Брутфорс через system.multicall
- До 500 попыток пароля за один запрос
Решения:
Вариант 1: Полная блокировка (рекомендуется)
Если не используете мобильное приложение WordPress:
- Безопасность → WAF → Правила
- Добавить правило: Block /xmlrpc.php
Вариант 2: Частичная защита
Если нужен xmlrpc.php:
- Блокировать pingback методы
- Rate Limit: 10 req/min
- Whitelist IP вашего приложения
Вариант 3: Через WAF или настройки веб-сервера
\\\`
URL: /xmlrpc.php
Действие: Block
Исключение: Ваши IP
\\\`
Проверка:
После блокировки xmlrpc.php:
\\\`bash
curl -X POST https://yoursite.com/xmlrpc.php
# Должен вернуть 403
\\\`
Защита wp-admin
Защита админ-панели:
1. Ограничение по IP:
Разрешить доступ к /wp-admin/ только с ваших IP:
- Создайте URL-правило в WAF либо на веб-сервере
- URL: /wp-admin/*
- Действие: Require IP Whitelist
- Добавьте ваши IP
2. Ограничение по стране:
- GeoIP домена: используйте whitelist только если ограничение подходит всему сайту
- Whitelist: Россия (или ваша страна)
3. JavaScript Challenge:
Для всех запросов к /wp-admin/:
- Настройте правило WAF для /wp-admin/*
- режим WAF: High
- проверку браузера: On
4. Rate Limiting:
Ограничение запросов к админке:
- 100 req/min на IP
- Защита от перебора
5. Исключения для AJAX:
/wp-admin/admin-ajax.php используется фронтендом:
- Не блокируйте полностью
- Rate Limit: 200 req/min
Рекомендуемый .htaccess (дополнительно):
\\\`apache
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from YOUR_IP
</Files>
\\\`
Защита файлов
Файлы, которые нужно защитить:
wp-config.php:
Содержит пароли к базе данных. TrafficVeil автоматически блокирует доступ.
Папка /wp-includes/:
Системные файлы WordPress. Прямой доступ не нужен.
Папка /wp-content/uploads/:
Разрешить только изображения и документы. Блокировать .php файлы.
Файлы readme.html, license.txt:
Раскрывают версию WordPress. Рекомендуется блокировать.
Файл debug.log:
Содержит ошибки и пути. Обязательно блокировать!
Настройка в TrafficVeil:
WAF правила (автоматически):
- Блокировка доступа к wp-config.php
- Блокировка .php в uploads
- Блокировка backup файлов (.sql, .zip, .tar.gz)
URL-правила WAF (дополнительно):
\\\`
URL: /wp-content/debug.log
Действие: Block
URL: /readme.html
Действие: Block
URL: /.git/*
Действие: Block
\\\`
Проверка безопасности:
TrafficVeil автоматически сканирует и блокирует попытки доступа к чувствительным файлам.
Защита WooCommerce
Особенности защиты интернет-магазина:
Страница оплаты (/checkout/):
- НЕ кэшировать
- Rate Limit: 30 req/min
- Высокий уровень защиты от ботов
API WooCommerce (/wp-json/wc/):
- Rate Limit для предотвращения парсинга цен
- Whitelist для интеграций
Корзина (/cart/):
- Защита от спама добавлений
- Rate Limit: 50 req/min
Страницы товаров:
- Защита от скрейпинга каталога
- Блокировка парсеров цен
Настройка:
- URL-правила WAF для /checkout/*:
- Cache: Bypass
- Security: High
- Bot Protection: Aggressive
- Rate Limit для /wp-json/wc/*:
- 60 req/min
- Исключение для ваших интеграций
Исключения для платёжных систем:
Добавьте в Whitelist IP:
- Stripe webhooks
- PayPal IPN
- Другие платёжные системы
Оптимизация WordPress
Кэширование для WordPress:
Статические файлы:
- /wp-content/themes/*: 1 месяц
- /wp-content/uploads/*: 1 год
- /wp-includes/*: 1 месяц
Динамические страницы:
- Главная: 1 час (или Edge Cache)
- Посты: 1 день
- Страницы: 1 неделя
Исключения из кэша:
- /wp-admin/*
- /wp-login.php
- /cart/*
- /checkout/*
- /my-account/*
Совместимость с плагинами кэширования:
TrafficVeil совместим с:
- WP Super Cache
- W3 Total Cache
- WP Rocket
- LiteSpeed Cache
Рекомендация:
Используйте плагин кэширования для HTML и TrafficVeil для статики и защиты.
Очистка кэша:
При обновлении контента очищайте кэш:
- В плагине кэширования WordPress
- В TrafficVeil (если кэшируете HTML)
Чек-лист безопасности
Чек-лист защиты WordPress:
В TrafficVeil:
- [ ] Включить WAF (режим Block)
- [ ] Настроить Rate Limit для wp-login.php
- [ ] Заблокировать xmlrpc.php (если не используете)
- [ ] Настроить GeoIP для wp-admin
- [ ] Включить Bot Detection (Medium+)
- [ ] Настроить Telegram уведомления
В WordPress:
- [ ] Обновить WordPress до последней версии
- [ ] Обновить все плагины
- [ ] Удалить неиспользуемые плагины и темы
- [ ] Установить плагин 2FA
- [ ] Сменить стандартный логин admin
- [ ] Использовать сложные пароли
- [ ] Настроить регулярные бекапы
На сервере:
- [ ] Защитить wp-config.php (chmod 400)
- [ ] Отключить редактирование файлов в админке
- [ ] Настроить SSL (HTTPS)
- [ ] Обновить PHP до актуальной версии
Дополнительно:
- [ ] Установить Wordfence или Sucuri (опционально)
- [ ] Настроить мониторинг uptime
- [ ] Настроить уведомления об изменениях файлов