XML-RPC — это протокол, который позволяет удалённо управлять сайтом WordPress, например, публиковать посты через мобильные приложения или использовать внешние сервисы. Однако, несмотря на удобство, XML-RPC часто становится причиной проблем с безопасностью и производительностью. В этой статье подробно рассмотрим, зачем отключать или удалять XML-RPC, и как это сделать максимально эффективно с примерами кода и рекомендациями по плагинам.
Что такое XML-RPC в WordPress и почему его стоит отключать
XML-RPC — это интерфейс, который был внедрён в WordPress с целью обеспечить взаимодействие с внешними приложениями. Он поддерживает такие функции, как публикация и редактирование записей, управление комментариями, получение информации о сайте и многое другое.
Однако XML-RPC часто используется злоумышленниками для проведения атак типа brute force и DDoS. Например, с помощью метода system.multicall можно отправить десятки тысяч запросов с одной сессии, что нагружает сервер и может привести к сбоям.
Кроме того, если вы не используете возможности удалённого управления сайтом, XML-RPC становится просто уязвимым элементом, который лучше отключить для повышения безопасности и ускорения работы сайта.
Основные риски использования XML-RPC
- Brute force атаки: злоумышленники пытаются подобрать пароль, используя XML-RPC.
- DDoS-атаки через мульти-вызовы: метод
system.multicallпозволяет отправлять множество запросов за один вызов. - Уязвимости плагинов и тем: иногда XML-RPC используется для обхода стандартных ограничений.
Как отключить XML-RPC в WordPress с помощью кода
Если вы хотите отключить XML-RPC без установки плагинов, можно добавить следующий код в файл functions.php вашей темы или в файл основного плагина:
function wpfind_disable_xmlrpc() {
add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpfind_disable_xmlrpc');Этот фильтр полностью отключит работу XML-RPC на вашем сайте. После этого все запросы к xmlrpc.php будут получать ответ об ошибке.
Чтобы дополнительно заблокировать доступ к самому файлу xmlrpc.php, можно добавить правила в .htaccess (для Apache):
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>Или для Nginx:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}Плюсы и минусы отключения через код
Преимущество — лёгкость и минимальное влияние на производительность. Недостаток — отсутствие гибкости в случае, если XML-RPC всё же нужен для определённых сервисов.
Как отключить XML-RPC с помощью плагинов
Для тех, кто предпочитает не править код вручную, существуют готовые плагины. Вот наиболее популярные и проверенные:
- Clearfy Pro — мощный инструмент для оптимизации и безопасности сайта, в том числе позволяет отключить XML-RPC в один клик.
- Disable XML-RPC — простой и лёгкий плагин, который полностью блокирует XML-RPC.
- Disable XML-RPC Methods — позволяет selectively отключать определённые методы XML-RPC, оставляя другие активными.
Настройка Clearfy Pro для отключения XML-RPC
После установки и активации Clearfy Pro перейдите в раздел безопасности и найдите опцию «Отключить XML-RPC». Активируйте её, и плагин самостоятельно заблокирует все запросы к этому интерфейсу.
Преимущество Clearfy в том, что он также оптимизирует другие аспекты безопасности и производительности, что делает его комплексным решением.
Альтернативные способы защиты XML-RPC
Если полностью отключать XML-RPC нельзя (например, вы используете мобильные приложения или внешние сервисы), можно ограничить доступ или обезопасить его:
Ограничение доступа по IP
Добавьте в .htaccess правило, разрешающее доступ только с доверенных IP-адресов:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 123.45.67.89
</Files>Замените 123.45.67.89 на IP вашего сервера или внешнего сервиса.
Отключение метода system.multicall
Метод system.multicall часто используется для DDoS. Его можно отключить через фильтр:
function wpfind_disable_multicall( $methods ) {
unset( $methods['system.multicall'] );
return $methods;
}
add_filter( 'xmlrpc_methods', 'wpfind_disable_multicall' );Это позволит продолжить использовать другие методы XML-RPC, но исключит возможность массовых запросов.
Проверка отключения XML-RPC
После применения мер важно убедиться, что XML-RPC действительно отключён. Для этого можно воспользоваться онлайн-сервисами, например, xmlrpc.eritreo.it. Они проверят доступность интерфейса и наличие уязвимостей.
Также можно отправить запрос напрямую из терминала с помощью curl:
curl -I https://ваш-сайт.ru/xmlrpc.phpЕсли вы видите ответ 403 или 404, значит доступ заблокирован.
Выводы и рекомендации
Отключение XML-RPC — простой и эффективный способ повысить безопасность WordPress сайта. Если вы не используете функции удалённого управления, смело отключайте его через код или плагины.
Если же нужен XML-RPC, обязательно ограничьте доступ и отключите уязвимые методы, такие как system.multicall. Не забывайте регулярно проверять сайт на наличие уязвимостей.
Для комплексного решения безопасности рекомендую обратить внимание на Clearfy Pro — этот плагин помогает не только с XML-RPC, но и с множеством других аспектов защиты и оптимизации.