Введение
BotBlocker — это мощный плагин безопасности для WordPress, который защищает ваш сайт отботов и вредоносного трафика. Однако при работе с WooCommerce неправильная настройка может блокировать законных покупателей на этапе оформления заказа или мешать работе сторонних интеграций. Это руководство покажет, как правильно настроить BotBlocker для обеспечения максимальной безопасности при сохранении бесперебойной работы магазина.
Часть 1: Базовая настройка WooCommerce
Почему WooCommerce требует специальных правил
WooCommerce использует динамические пути для процесса оформления заказа, управления корзиной и AJAX-запросов. Если эти пути заблокированы, покупатели не смогут завершить покупку, и ваш магазин потеряет продажи.
Шаг 1: Добавьте необходимые пути
Перейдите в BotBlocker → Rules → Paths и добавьте следующие пути со статусом «Allow» (Разрешить):
Для стандартного WooCommerce:
/checkout/— страница оформления заказа/cart/— корзина покупок/my-account/— личный кабинет покупателя/?wc-ajax=— AJAX-запросы
Для WooCommerce Blocks (современный checkout):
/wp-json/wc/store/— Store API для блоков
Шаг 2: Активируйте правила
Важно: После добавления путей убедитесь, что они активны. Неактивные правила подсвечены красным. Кликните на каждое правило, чтобы активировать его — активные правила станут зелёными.
Шаг 3: Обновите плагин
Установите BotBlocker версии 1.6.8 или новее, которая исправляет проблемы с cookies, способные вызвать сбои при оформлении заказа.
Примечание о безопасности
Разрешение этих путей не ставит под угрозу безопасность вашего сайта. BotBlocker пропускает по этим путям только проверенных пользователей, обеспечивая корректную работу сессий, cookies и обработки заказов.
Часть 2: Настройка защиты REST API для интеграций
Проблема
Многие магазины WooCommerce интегрируются с внешними сервисами: службами доставки, системами управления складом, CRM-платформами и мобильными приложениями. Эти сервисы используют WooCommerce REST API. По умолчанию BotBlocker может блокировать эти запросы, нарушая работу ваших интеграций.
Решение: умный белый список
BotBlocker предлагает гибкую систему белых списков, позволяющую предоставить доступ к API только конкретным доверенным сервисам без публичного открытия API.
Пошаговая настройка API
Шаг 1: Временно разрешите путь API
Перейдите в BotBlocker → Rules → Paths и добавьте:
/wp-json/wc/v3/(или версию, которую использует ваша интеграция)
Отметьте этот путь как Allowed (Разрешённый).
Шаг 2: Сгенерируйте реальный трафик
Инициируйте реальный API-запрос от вашей интеграции:
- Для служб доставки: распечатайте тестовую транспортную этикетку
- Для других интеграций: выполните тестовое действие, вызывающее API
- Альтернативно: оформите тестовый заказ
Это создаст записи в логе, которые BotBlocker сможет проанализировать.
Шаг 3: Проанализируйте полный лог
Перейдите в BotBlocker → Full Log и найдите запросы к разрешённому пути API.
Ищите идентификационные характеристики вашей интеграции:
User-Agent (наиболее надёжно):
Пример: "ShipStation/1.0" или "MyShippingApp/2.5"
PTR/Обратный DNS (очень надёжно для крупных провайдеров):
Пример: "mail.fedex.com" или "api.shipstation.com"
IP-адрес (менее надёжно, используйте только в крайнем случае):
Пример: "192.168.1.100"
Примечание: IP могут меняться, проверьте, использует ли провайдер статический IP или диапазон IP
Шаг 4: Создайте постоянное правило разрешения
Из записи лога создайте правило, идентифицирующее вашу интеграцию:
Лучший вариант — по User-Agent:
- Кликните на значение User-Agent в логе
- Создайте правило: «Разрешить запросы с этим User-Agent»
- Установите срок действия +10 лет (фактически постоянное)
Альтернатива — по PTR:
- Используйте, если у провайдера стабильный обратный DNS
- Надёжнее, чем IP-адреса
Крайний случай — по IP:
- Только если провайдер гарантирует статический IP
- Менее надёжно из-за возможных изменений IP
Шаг 5: Удалите открытый путь API
После того как ваше постоянное правило активно и протестировано:
- Убедитесь, что интеграция всё ещё работает
- Отключите или удалите открытый путь API (
/wp-json/wc/v3/) - Протестируйте интеграцию снова
Результат
✅ WooCommerce REST API остаётся полностью защищённым
✅ Только ваша доверенная интеграция может получить к нему доступ
✅ Нет публичного или анонимного доступа к API
✅ Обновления статуса заказа и письма с трекингом работают корректно
✅ Максимальная безопасность без потери функциональности
Распространённые проблемы и решения
Проблема: оформление заказа всё ещё не работает
Решение:
- Очистите кэш браузера и cookies
- Убедитесь, что все правила активированы (зелёный статус)
- Проверьте, что плагин обновлён до версии 1.6.8+
- Временно отключите другие плагины безопасности, чтобы исключить конфликты
Проблема: мобильное приложение не может подключиться к API
Решение:
- Следуйте процессу добавления API в белый список, описанному выше
- Проверьте, что ваше приложение отправляет постоянный User-Agent
- Если приложение использует несколько IP-адресов, рассмотрите белый список по User-Agent
Проблема: некоторые AJAX-запросы блокируются
Решение: Добавьте конкретное AJAX-действие в разрешённые пути:
/?wc-ajax=action_name
Лучшие практики
- Всегда тестируйте после изменений — оформите тестовый заказ, чтобы убедиться, что checkout работает
- Используйте User-Agent для белых списков когда возможно — это самый надёжный метод
- Регулярно мониторьте полный лог — проверяйте заблокированный легитимный трафик
- Держите плагин обновлённым — новые версии исправляют ошибки и улучшают совместимость
- Документируйте ваши правила — ведите список, какие интеграции используют какие правила
Будущие улучшения
В предстоящих версиях BotBlocker плагин будет автоматически создавать правила для WooCommerce при установке, делая начальную настройку ещё проще.
Заключение
Правильная настройка BotBlocker обеспечивает надёжную защиту от вредоносного трафика при сохранении бесперебойной работы вашего магазина WooCommerce. Следуя этому руководству, вы сохраните максимальную безопасность без ущерба для функциональности или пользовательского опыта.
Помните: безопасность и удобство использования не обязательно взаимоисключающи. При грамотной настройке можно добиться и того, и другого.