Как отключить и заблокировать XML-RPC в WordPress для защиты сайта

XML-RPC — это протокол, который позволяет удалённо управлять сайтом на WordPress, например, публиковать записи через внешние приложения. Несмотря на удобство, XML-RPC часто становится причиной уязвимостей и атак, таких как перебор паролей (brute force) или DDoS-атаки. В этой статье подробно рассмотрим, как отключить и заблокировать XML-RPC в WordPress, чтобы повысить безопасность вашего сайта.

Что такое XML-RPC в WordPress и зачем его отключать

XML-RPC — это API-интерфейс, который поддерживается WordPress с версии 3.5 и выше. Он используется для взаимодействия со сторонними приложениями, мобильными клиентами, плагинами и сервисами. Однако этот же интерфейс часто эксплуатируется злоумышленниками для:

  • перебора паролей методом brute force;
  • отправки большого количества запросов с целью перегрузки сервера;
  • использования уязвимостей, связанных с XML-RPC.

Если вы не используете приложения, которые требуют XML-RPC (например, мобильное приложение WordPress, Jetpack или внешние редакторы), его стоит отключить или заблокировать.

Способы отключения XML-RPC в WordPress

Отключение через functions.php

Для базового отключения XML-RPC можно использовать фильтр xmlrpc_enabled. Добавьте следующий код в файл functions.php вашей активной темы или в плагин для пользовательских функций:

function wpfactory_disable_xmlrpc() {
    return false;
}
add_filter('xmlrpc_enabled', 'wpfactory_disable_xmlrpc');

Этот код полностью отключит XML-RPC и сервер не будет отвечать на соответствующие запросы.

Блокировка XML-RPC через .htaccess

Чтобы заблокировать доступ к файлу xmlrpc.php на уровне веб-сервера Apache, добавьте следующий код в файл .htaccess в корне сайта:

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Этот способ эффективен, так как запросы даже не дойдут до WordPress.

Блокировка через Nginx

Если ваш сервер работает на Nginx, добавьте в конфигурацию сайта:

location = /xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
}

После применения изменений перезапустите Nginx.

Использование плагинов для управления XML-RPC

Если вы предпочитаете управлять настройками через панель WordPress, рекомендуем несколько плагинов:

  • Disable XML-RPC — простой плагин, который отключает весь функционал XML-RPC.
  • Clearfy — многофункциональный оптимизатор сайта, который позволяет отключать XML-RPC и другие неиспользуемые функции для повышения безопасности и производительности. Подробнее: Clearfy на WPSHOP.
  • Wordfence Security — комплексный плагин безопасности, который может блокировать XML-RPC атаки и ограничивать доступ.

Отдельные случаи: разрешить только некоторые методы XML-RPC

Если полностью отключать XML-RPC нельзя, можно ограничить набор поддерживаемых методов. Например, запретить использование system.multicall, который часто используется для атак.

function wpfactory_filter_xmlrpc_methods($methods) {
    unset($methods['system.multicall']);
    return $methods;
}
add_filter('xmlrpc_methods', 'wpfactory_filter_xmlrpc_methods');

Этот код оставит работу XML-RPC, но запретит массовые вызовы, что значительно снизит риск атак.

Проверка отключения XML-RPC

Проверить, отключён ли XML-RPC, можно с помощью сервисов, например XML-RPC Validator. Если всё сделано правильно, сервис сообщит, что доступ к xmlrpc.php закрыт.

Выводы и рекомендации по безопасности

Отключение и блокировка XML-RPC — простой и эффективный способ повысить безопасность вашего WordPress-сайта, особенно если вы не используете мобильные приложения или сторонние сервисы, нуждающиеся в этом протоколе.

Для большинства сайтов оптимальным будет комбинированный подход: отключение XML-RPC через фильтр в WordPress и блокировка на уровне веб-сервера. Если в будущем понадобится восстановить работу API, достаточно будет убрать соответствующие настройки.

Используйте плагины безопасности, например Clearfy или Wordfence, чтобы дополнительно контролировать доступ и мониторить атаки.

Как избежать конфликтов между плагинами WordPress
14.12.2025
Автоматическое создание Sitemap в WordPress с поддержкой Multisite
09.02.2026
Очистка базы данных WooCommerce без потери данных: практическое руководство
10.05.2026
Автоматическое удаление старых записей в WordPress
22.03.2026
Как отключить Emoji в WordPress для ускорения сайта и улучшения производительности
06.12.2025