Как отключить XML-RPC в WordPress без плагинов

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

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

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

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

  • Брутфорс — перебор паролей с помощью метода system.multicall.
  • DDoS — отправка большого количества запросов к XML-RPC для перегрузки сервера.
  • Возможные уязвимости в реализации протокола.

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

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

Чтобы убедиться, что XML-RPC включён, достаточно перейти по адресу https://ваш-домен.ru/xmlrpc.php. Если вы видите сообщение «XML-RPC server accepts POST requests only.», значит протокол активен.

Ещё один способ — использовать утилиты типа curl:

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

Если статус 405 (Method Not Allowed) или 200, значит файл доступен и работает.

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

1. Отключение через файл functions.php

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

function wphost_disable_xmlrpc($methods) {
    return [];
}
add_filter('xmlrpc_enabled', '__return_false');
add_filter('xmlrpc_methods', 'wphost_disable_xmlrpc');

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

2. Блокировка доступа к файлу xmlrpc.php через .htaccess

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

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

Этот метод самый надёжный и не влияет на работу WordPress, так как запросы к xmlrpc.php просто блокируются на уровне веб-сервера.

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

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

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

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

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

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

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

Дополнительные рекомендации по безопасности WordPress

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

  • Использовать плагин Clearfy Pro для оптимизации и безопасной настройки WordPress.
  • Ограничивать попытки входа с помощью плагинов типа Limit Login Attempts.
  • Регулярно обновлять ядро, темы и плагины.
  • Использовать двухфакторную аутентификацию.

Можно ли отключать XML-RPC, если используются мобильные приложения?

Если вы управляете сайтом через официальное приложение WordPress для iOS или Android, либо через сторонние сервисы, отключение XML-RPC приведёт к потере этой функциональности. В таком случае лучше ограничить доступ к xmlrpc.php через .htaccess или Nginx только для подозрительных IP или использовать плагин, который блокирует атаки, а не отключает протокол полностью.

Пример условной блокировки xmlrpc.php по IP в .htaccess

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

Замените 123.123.123.123 на IP, с которого вы хотите разрешить доступ.

Как удалить или изменить поля в форме оплаты WooCommerce без плагинов
17.06.2026
Как отключить Emoji в WordPress для ускорения сайта
21.01.2026
Как удалить или изменить регистрацию пользователя в WordPress без плагинов
13.12.2025
Как избежать конфликтов между плагинами в WordPress
31.03.2026
Как изменить URL авторской страницы в WordPress без плагинов
07.02.2026