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

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

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

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

В этой статье мы рассмотрим несколько способов отключения XML-RPC в WordPress с примерами кода и рекомендациями по плагинам.

Как проверить, активен ли XML-RPC на вашем сайте

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

https://ваш-домен.ru/xmlrpc.php

Если вы увидите сообщение «XML-RPC server accepts POST requests only.» — значит сервис работает и доступен. Если же получаете ошибку 403 или 404 — XML-RPC уже отключен.

Также можно проверить логи сервера на наличие подозрительной активности с запросами к xmlrpc.php, что часто бывает при атаках.

Способ 1: Отключение XML-RPC с помощью плагина Disable XML-RPC

Описание плагина

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

Как установить и настроить

  1. Перейдите в админке WordPress в раздел «Плагины» → «Добавить новый».
  2. В поиске введите Disable XML-RPC.
  3. Установите и активируйте плагин.
  4. Настроек у плагина нет, он сразу начинает работать.

Преимущества и недостатки

  • Плюсы: быстро, просто, без кода.
  • Минусы: дополнительный плагин в системе, может конфликтовать с другими плагинами, которые используют XML-RPC.

Способ 2: Отключение XML-RPC через functions.php вашей темы

Если вы предпочитаете не устанавливать плагин, можно добавить следующий код в файл functions.php активной темы (желательно дочерней):

function wpprotect_disable_xmlrpc() {
    add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpprotect_disable_xmlrpc');

Этот фильтр отключает обработку XML-RPC на уровне ядра WordPress.

Важно:
- Перед внесением изменений сделайте резервную копию файла.
- После добавления кода проверьте сайт на наличие ошибок.

Пояснение к коду

Хук xmlrpc_enabled позволяет включать или выключать поддержку XML-RPC. Возврат false отключает эту функциональность.

Способ 3: Отключение XML-RPC через .htaccess (Apache)

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

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

Это полностью запретит любые HTTP-запросы к xmlrpc.php.

Плюсы данного метода — высокая скорость блокировки и отсутствие нагрузки на WordPress, так как запросы не доходят до CMS.

Минусы — если вы используете легитимные сервисы, работающие через XML-RPC, они перестанут работать.

Способ 4: Отключение XML-RPC через Nginx

Если ваш сервер работает под управлением Nginx, добавьте в конфигурацию сайта (обычно в файле default.conf или nginx.conf) следующий блок:

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

После внесения изменений перезапустите Nginx командой sudo systemctl reload nginx или аналогичной.

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

Повторите проверку, описанную выше, перейдя в браузере по адресу https://ваш-домен.ru/xmlrpc.php. Должно появиться сообщение об ошибке 403 Forbidden или страница не должна открываться.

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

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

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

  • Через .htaccess разрешить доступ только с определённых IP.
  • Использовать плагины, например, Stop XML-RPC Attack, которые фильтруют подозрительные запросы.
  • Настроить двухфакторную аутентификацию (2FA) для пользователей, которые работают с XML-RPC.

Итоговые рекомендации

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

Для большинства пользователей оптимальным будет способ с добавлением фильтра в functions.php или установка плагина Disable XML-RPC.

Если у вас виртуальный сервер с доступом к настройкам веб-сервера, рекомендуем блокировать xmlrpc.php на уровне Apache или Nginx для максимальной защиты.

Не забывайте проверять работоспособность сайта после внесения изменений и делать резервные копии файлов и базы данных.

Как защитить WordPress от SQL-инъекций: практические методы и примеры кода
11.01.2026
Как отключить автосохранение в WordPress
07.01.2026
Как защитить WordPress от хакерского чтения файлов и копирования контента
22.03.2026
Как установить ограничения на регистрацию в WordPress: практические методы и примеры кода
21.01.2026
Как отключить XML-RPC в WordPress для повышения безопасности сайта
04.12.2025