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

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

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

XML-RPC — это интерфейс, встроенный в WordPress, который позволяет внешним приложениям выполнять различные действия: создавать записи, редактировать, комментировать и так далее. Этот протокол включён по умолчанию и доступен по адресу https://ваш-сайт.ru/xmlrpc.php.

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

  • массовых атак на пароль (brute force);
  • DDOS-атак через pingback;
  • использования сайта в ботнетах.

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

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

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

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

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

add_filter('xmlrpc_enabled', '__return_false');

Добавьте эту строку в файл functions.php вашей активной темы (желательно дочерней, чтобы изменения не пропали при обновлении темы). Этот фильтр полностью отключает XML-RPC на уровне WordPress.

Однако, в некоторых случаях запросы к xmlrpc.php всё равно будут проходить, и сервер может отвечать, хотя функциональность будет отключена.

2. Отключение XML-RPC через .htaccess (Apache)

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

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

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

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

Если ваш сайт работает под Nginx, запретить доступ к xmlrpc.php можно через конфигурацию сервера:

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

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

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

После внесения изменений проверьте, что XML-RPC действительно отключён. Для этого откройте в браузере https://ваш-сайт.ru/xmlrpc.php. При отключении через фильтр вы увидите сообщение "XML-RPC server accepts POST requests only." — это нормально. Если же доступ заблокирован через .htaccess или Nginx, вы получите ошибку 403 или подобную.

Ещё один способ — воспользоваться онлайн-сервисами проверки XML-RPC, например, https://xmlrpc.eritreo.it/. Если сервис не может подключиться, значит блокировка сработала.

Как избежать проблем с отключением XML-RPC

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

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

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

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

function wpskills_disable_xmlrpc_with_logging() {
    if (defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) {
        error_log('XML-RPC access attempt blocked: ' . $_SERVER['REMOTE_ADDR']);
        wp_die('XML-RPC отключён на этом сайте.');
    }
}
add_action('init', 'wpskills_disable_xmlrpc_with_logging');

Этот код добавьте в functions.php. Он не просто отключит XML-RPC, но и запишет в журнал сервера IP адреса, которые пытались к нему обратиться. Это помогает выявлять злонамеренные действия.

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

Полное отключение XML-RPC — простой и эффективный способ повысить безопасность WordPress-сайта, если вы не используете удалённые сервисы. Вы можете сделать это через фильтр, серверные настройки или кастомный код в functions.php.

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

Как удалить атрибут alt из изображений в WordPress
25.12.2025
WooCommerce: как исправить проблему с неотображением корзины после обновления
04.05.2026
Как удалить избитые шорткоды в WordPress: практические методы и примеры кода
11.03.2026
Как убрать лишнюю переадресацию в WordPress после обновления плагина
28.12.2025
Как добавить автоматический alt к изображениям в WordPress
08.01.2026