Как отключить XML-RPC в WordPress для повышения безопасности

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

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

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

  • Brute force атаки — перебор паролей через метод system.multicall, позволяющий отправить сразу несколько запросов;
  • DDoS-атаки — из-за особенностей протокола нагрузка может быть усилена;
  • Использование уязвимостей в старых версиях WordPress через XML-RPC;

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

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

Самый простой способ проверить — попытаться получить доступ к файлу xmlrpc.php в корне сайта. Откройте в браузере URL https://ваш_сайт/xmlrpc.php. Если вы увидите сообщение "XML-RPC server accepts POST requests only.", значит, сервис активен.

Также можно использовать онлайн-инструменты для проверки безопасности WordPress, которые обязательно тестируют доступность XML-RPC.

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

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

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

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

Этот код полностью отключит XML-RPC API. Преимущество — простота и отсутствие необходимости редактировать серверные файлы.

Отключение через .htaccess (для Apache)

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

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

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

Отключение через Nginx

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

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

После внесения изменений перезапустите Nginx, чтобы они вступили в силу.

Использование плагинов для отключения XML-RPC

Если вы предпочитаете готовые решения, можно использовать следующие плагины:

  • Disable XML-RPC — простой и лёгкий плагин, который отключает XML-RPC без лишних настроек.
  • Clearfy Pro — комплексный плагин оптимизации и безопасности, который позволяет отключить XML-RPC, а также множество других функций для ускорения и защиты сайта. Подробнее на wpshop.ru.
  • WPS Hide Login — хотя плагин не отключает XML-RPC, он скрывает страницу логина, что вместе с отключением XML-RPC значительно повышает безопасность.

Когда не стоит отключать XML-RPC

Стоит помнить, что отключение XML-RPC может повлиять на работу:

  • Мобильных приложений WordPress для публикации постов и управления сайтом.
  • Плагинов и сервисов, использующих XML-RPC для взаимодействия (например, Jetpack).
  • Некоторых функций автоматизации и удалённого управления.

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

Альтернативные методы защиты XML-RPC

Если полностью отключать XML-RPC нельзя, можно минимизировать риски:

  • Ограничить доступ к xmlrpc.php по IP-адресам через .htaccess или конфигурацию сервера.
  • Использовать плагины типа WP Cerber Security или Wordfence, которые блокируют подозрительные запросы к XML-RPC.
  • Отключить метод system.multicall, который часто используется для перебора паролей. Пример кода для functions.php:
add_filter('xmlrpc_methods', 'wptask_disable_system_multicall');
function wptask_disable_system_multicall($methods) {
    unset($methods['system.multicall']);
    return $methods;
}

Выводы и рекомендации

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

Если отключение нежелательно, используйте ограничение доступа по IP и блокировку опасных методов. Обязательно тестируйте изменения на тестовом сайте, чтобы не нарушить критичные функции.

Для комплексной защиты и оптимизации советуем обратить внимание на плагин Clearfy Pro, который позволяет гибко управлять безопасностью и производительностью WordPress.

Как отключить XML-RPC в WordPress для повышения безопасности
27.01.2026
WooCommerce: автоматическое удаление неоплаченных заказов через 24 часа
01.06.2026
Как создать автоматический импорт продуктов в WordPress через REST API
19.12.2025
Как создать автоматические уведомления в WordPress с помощью хуков и плагинов
09.01.2026
Оптимизация базы данных WordPress: удаляем избыточные данные и ускоряем сайт
26.11.2025