Как отключить XML-RPC в WordPress: эффективные методы с примерами кода и плагинов

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

Зачем отключать XML-RPC: риски и уязвимости

XML-RPC предоставляет мощный функционал, но одновременно открывает дополнительные пути для атак. Основные риски:

  • Brute force атаки: с помощью метода system.multicall злоумышленники могут выполнять тысячи попыток входа за один запрос.
  • DDoS-атаки: XML-RPC можно использовать для отправки большого количества запросов, перегружающих сервер.
  • Утечка информации: через XML-RPC можно получить определённые данные о сайте и его пользователях.

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

Как отключить XML-RPC в WordPress с помощью кода

Для отключения XML-RPC можно использовать несколько подходов на уровне PHP. Вот наиболее популярные и безопасные методы.

Метод 1: Отключение XML-RPC через фильтр

WordPress предоставляет фильтр xmlrpc_enabled, который можно использовать для отключения XML-RPC:

add_filter('xmlrpc_enabled', '__return_false');

Добавьте этот код в файл functions.php вашей темы или в собственный плагин. Этот способ прост и не требует отключения всего файла xmlrpc.php.

Метод 2: Блокировка доступа к xmlrpc.php через functions.php

Другой способ — полностью блокировать доступ к файлу xmlrpc.php с помощью хука init:

function wpscan_disable_xmlrpc() {
    if (strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false) {
        wp_die('XML-RPC отключён на этом сайте.', 'Доступ запрещён', array('response' => 403));
    }
}
add_action('init', 'wpscan_disable_xmlrpc');

Этот код прерывает выполнение при попытке доступа к xmlrpc.php, возвращая ошибку 403.

Метод 3: Отключение отдельных методов XML-RPC

Если полностью отключать XML-RPC не хотите, можно ограничить опасные методы, например, system.multicall:

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

Это снижает риск массовых попыток входа, сохраняя при этом часть функционала.

Отключение XML-RPC с помощью плагинов

Если вы предпочитаете готовые решения, можно использовать специализированные плагины. Вот несколько популярных и надёжных вариантов.

Плагин Disable XML-RPC

Очень простой плагин, который полностью отключает XML-RPC одним кликом. Подходит для всех, кто не использует удалённые сервисы и хочет быстро устранить уязвимость.

Скачать Disable XML-RPC

Плагин Clearfy Pro

Clearfy Pro — это комплексный плагин для оптимизации и безопасности WordPress. В числе многих функций он позволяет легко отключить XML-RPC, а также блокировать нежелательные методы и IP-адреса.

Использование Clearfy Pro удобно, если вы хотите получить не только защиту XML-RPC, но и ряд других улучшений.

Подробнее о Clearfy Pro

WPGPT — автоматизация безопасности

Плагин WPGPT использует ИИ для анализа и устранения уязвимостей, включая рекомендации по отключению XML-RPC, если он не нужен. Интерактивный помощник поможет сделать сайт безопаснее без глубоких технических знаний.

Подробнее о WPGPT

Как проверить, что XML-RPC действительно отключён

После применения любого из методов важно проверить, что XML-RPC больше не доступен:

  • Попробуйте открыть https://ваш-сайт.ru/xmlrpc.php в браузере — если увидите сообщение с ошибкой или отказом в доступе, значит отключение сработало.
  • Используйте онлайн-инструменты для проверки XML-RPC, например, xmlrpc.eritreo.it.
  • Проверьте логи сервера на предмет новых запросов к xmlrpc.php. Их должно не быть или они должны блокироваться.

Альтернативные меры безопасности для XML-RPC

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

Ограничение доступа по IP

Через конфигурацию сервера (htaccess, nginx) можно разрешить доступ к xmlrpc.php только с доверенных IP-адресов.

Ограничение количества запросов (rate limiting)

Используйте плагины безопасности или серверные правила, чтобы ограничить количество запросов к XML-RPC за определённый промежуток времени, предотвращая атаки.

Внедрение CAPTCHA для запросов XML-RPC

Хотя реализовать CAPTCHA для XML-RPC сложно, некоторые плагины безопасности предлагают похожие механизмы, блокирующие подозрительную активность.

Пример комплексного кода для отключения и логирования попыток доступа к XML-RPC

function wpscan_block_xmlrpc_and_log() {
    if (strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false) {
        error_log('Попытка доступа к XML-RPC: IP ' . $_SERVER['REMOTE_ADDR'] . ', время: ' . current_time('mysql'));
        wp_die('XML-RPC отключён на этом сайте.', 'Доступ запрещён', array('response' => 403));
    }
}
add_action('init', 'wpscan_block_xmlrpc_and_log');

add_filter('xmlrpc_enabled', '__return_false');

Этот код не только блокирует доступ, но и записывает в лог попытки обращения, что помогает отслеживать возможные атаки.

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

Как отладить проблемы с кэшированием в WordPress
25.11.2025
Автоматическое удаление отказанных и заблокированных заказов WooCommerce с помощью кода
02.06.2026
Автоматическое удаление отключённых и неоплаченных заказов в WooCommerce
17.05.2026
Автоматическое удаление старых заказов WooCommerce по статусу: практическое руководство
20.05.2026
Как отключить Emoji в WordPress для ускорения сайта и уменьшения нагрузки
24.02.2026