TrafficVeil
Документация15 min

Защита WordPress: wp-login, XML-RPC и WooCommerce

Пошаговая настройка защиты WordPress в TrafficVeil: wp-login, XML-RPC, wp-admin, WooCommerce, WAF, rate limiting и безопасные исключения.

Обновлено 12 июля 2026 г.

Защита 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 при атаке

Настройка:

  1. Безопасность → Rate Limiting
  2. Добавить правило для /wp-login.php
  3. Лимит: 5 req/min
  4. Действие: 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:

  1. Безопасность → WAF → Правила
  2. Добавить правило: Block /xmlrpc.php

Вариант 2: Частичная защита

Если нужен xmlrpc.php:

  1. Блокировать pingback методы
  2. Rate Limit: 10 req/min
  3. 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:

  1. Создайте URL-правило в WAF либо на веб-сервере
  2. URL: /wp-admin/*
  3. Действие: Require IP Whitelist
  4. Добавьте ваши IP

2. Ограничение по стране:

  1. GeoIP домена: используйте whitelist только если ограничение подходит всему сайту
  2. Whitelist: Россия (или ваша страна)

3. JavaScript Challenge:

Для всех запросов к /wp-admin/:

  1. Настройте правило WAF для /wp-admin/*
  2. режим WAF: High
  3. проверку браузера: 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

Страницы товаров:

  • Защита от скрейпинга каталога
  • Блокировка парсеров цен

Настройка:

  1. URL-правила WAF для /checkout/*:
  • Cache: Bypass
  • Security: High
  • Bot Protection: Aggressive
  1. 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 для статики и защиты.

Очистка кэша:

При обновлении контента очищайте кэш:

  1. В плагине кэширования WordPress
  2. В 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
  • [ ] Настроить уведомления об изменениях файлов