XML-RPC — это протокол, который позволяет удаленно управлять сайтом на WordPress, например, публиковать записи через внешние приложения или мобильные клиенты. Несмотря на удобство, XML-RPC часто становится причиной уязвимостей и атак, таких как перебор паролей и DDoS. Особенно если вы используете WPengine, где безопасность и производительность важны максимально.
Что такое XML-RPC и почему его стоит отключить
XML-RPC был введен в WordPress давно и служит для удаленного взаимодействия с сайтом. Однако большинство современных API, таких как REST API, заменяют его и обеспечивают более гибкий и безопасный доступ. На практике XML-RPC часто используют злоумышленники для:
- массового перебора паролей (brute force);
- атаки на сервер через pingback;
- отправки большого количества запросов, что нагружает сервер.
Если вы не используете удаленное управление, отключение XML-RPC значительно повысит безопасность вашего сайта и снизит нагрузку на сервер.
Как проверить, активен ли XML-RPC на вашем WordPress
Проверить доступность XML-RPC очень просто. Введите в браузере URL:
https://ваш-сайт.ru/xmlrpc.php
Если вы видите сообщение "XML-RPC server accepts POST requests only." или похожее, значит XML-RPC включен и доступен. Если сервер возвращает 403 или 404 ошибку, значит протокол отключен.
Способы отключения XML-RPC в WordPress на WPengine
1. Отключение через functions.php (кодовое решение)
Самый распространенный вариант — добавить фильтр, который полностью отключит XML-RPC:
add_filter('xmlrpc_enabled', '__return_false');
Добавьте этот код в файл functions.php вашей активной темы или в плагин для кастомных функций. Это самый простой способ, не требующий доступа к серверу.
2. Отключение через .htaccess
Если у вас есть доступ к файлу .htaccess на сервере, можно заблокировать доступ к xmlrpc.php на уровне веб-сервера Apache:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Это надежный способ, который не позволяет запросам даже достигать WordPress. Для Nginx конфигурация будет выглядеть так:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
3. Использование плагина для отключения XML-RPC
Если вы предпочитаете не править код, можно использовать специализированные плагины. Например, Disable XML-RPC — простой и эффективный. Установка и активация плагина автоматически запретит доступ к xmlrpc.php.
Также плагин Clearfy Pro из WPSHOP предлагает опцию отключения XML-RPC и дополнительные настройки безопасности.
Как отключение XML-RPC влияет на функциональность сайта
Перед отключением важно понимать, что некоторые плагины и внешние сервисы могут использовать XML-RPC. Например:
- Мобильные приложения WordPress;
- Плагины для кросспостинга;
- Интеграция с некоторыми сервисами управления контентом.
Если вы не используете такие функции, отключение не повлияет на работу сайта. В противном случае, рассмотрите альтернативу — ограничение доступа по IP или отключение отдельных функций XML-RPC (например, pingback) через фильтры.
Как ограничить только определенные функции XML-RPC
Иногда нужно не отключать весь протокол, а, например, выключить только pingback, который часто используется для DDoS атак. Для этого добавьте в functions.php:
add_filter('xmlrpc_methods', 'wpengine_filter_xmlrpc_methods');
function wpengine_filter_xmlrpc_methods($methods) {
unset($methods['pingback.ping']);
return $methods;
}
Этот код убирает метод pingback, оставляя остальной функционал XML-RPC доступным.
Дополнительные советы по безопасности на WPengine
Отключение XML-RPC — только один из шагов. Для комплексной защиты рекомендую:
- Использовать плагин безопасности, например Clearfy Pro, который умеет отключать неиспользуемые функции, блокировать брутфорс и оптимизировать сайт.
- Настроить двухфакторную аутентификацию для администраторов;
- Регулярно обновлять ядро WordPress, темы и плагины;
- Ограничить доступ к панели управления по IP;
- Использовать SSL и CDN для защиты и ускорения сайта.