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

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

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

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

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

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

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

Есть несколько способов отключить XML-RPC без установки дополнительных плагинов. Основные из них — запрет доступа через functions.php вашей темы или через правила в .htaccess. Рассмотрим оба варианта.

Отключение XML-RPC через functions.php (wpskins_disable_xmlrpc)

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

function wpskins_disable_xmlrpc( $methods ) {
    return []; // Отключаем все методы XML-RPC
}
add_filter( 'xmlrpc_methods', 'wpskins_disable_xmlrpc' );

Этот код возвращает пустой массив методов XML-RPC, effectively деактивируя протокол. Сервер будет отвечать, но никаких действий выполнять не будет.

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

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

Для пользователей веб-серверов Apache добавьте в корневой каталог сайта файл .htaccess или отредактируйте существующий, добавив:

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

Это полностью заблокирует доступ к файлу xmlrpc.php.

Для сайтов на Nginx настройка будет выглядеть так, и её нужно внести в конфигурацию сервера:

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

Тонкости и исключения при отключении XML-RPC

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

Пример фильтра для отключения всех методов, кроме wp.getUsersBlogs, который нужен для авторизации в мобильных приложениях:

function wpskins_restrict_xmlrpc_methods( $methods ) {
    foreach ( $methods as $method => $callback ) {
        if ( 'wp.getUsersBlogs' !== $method ) {
            unset( $methods[ $method ] );
        }
    }
    return $methods;
}
add_filter( 'xmlrpc_methods', 'wpskins_restrict_xmlrpc_methods' );

Такой код отключит все операции, кроме запроса блогов пользователя.

Защита от атак методом «pingback»

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

function wpskins_disable_pingback( $methods ) {
    if ( isset( $methods['pingback.ping'] ) ) {
        unset( $methods['pingback.ping'] );
    }
    return $methods;
}
add_filter( 'xmlrpc_methods', 'wpskins_disable_pingback' );

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

Чтобы проверить, отключён ли XML-RPC, можно сделать HTTP-запрос к https://ваш-сайт.ru/xmlrpc.php. Если отключение выполнено через .htaccess, сервер должен вернуть ошибку 403 Forbidden.

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

Для проверки можно использовать утилиты типа curl:

curl -I https://ваш-сайт.ru/xmlrpc.php

Или специализированные онлайн-сервисы для тестирования XML-RPC.

Заключение: как выбрать способ отключения XML-RPC

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

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

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

Как добавить адаптивную загрузку изображений в WordPress для ускорения сайта
30.03.2026
Как избежать конфликтов стилей WooCommerce и темы WordPress
30.04.2026
Как удалить неиспользуемые метаданные из базы WordPress для ускорения сайта
03.05.2026
Добавление поддержки формата WebP в WordPress без плагинов
15.12.2025
Как добавить автоматический прелоадер в WordPress для улучшения UX
12.02.2026