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

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

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

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

Однако наличие активного XML-RPC открывает дополнительные векторы атак. Злоумышленники могут использовать этот механизм для проведения массовых попыток входа (Brute Force), получения информации о пользователях или даже перегрузки сервера.

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

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

Существует несколько способов отключить XML-RPC без установки дополнительных плагинов. Рассмотрим основные из них.

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

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

<?php
// Отключаем XML-RPC
function wphide_disable_xmlrpc() {
    return false;
}
add_filter('xmlrpc_enabled', 'wphide_disable_xmlrpc');
?>

Этот код нужно вставить в файл functions.php вашей активной темы или в файл подключения пользовательских функций.

После этого WordPress перестанет обрабатывать XML-RPC запросы, но URL /xmlrpc.php останется доступен и будет отдавать заголовок 403 Forbidden.

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

Для Apache серверов можно ограничить доступ к файлу xmlrpc.php на уровне веб-сервера. Это более надёжный способ, так как запросы даже не будут доходить до WordPress.

# Блокируем доступ к xmlrpc.php
<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Этот код нужно добавить в корневой файл .htaccess вашего сайта. Он полностью блокирует доступ к xmlrpc.php для всех пользователей.

Если у вас Nginx, настройка будет выглядеть так:

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

После применения этих настроек сервер перестанет обрабатывать запросы к XML-RPC и будет возвращать ошибку 403.

3. Отключение pingback и других функций XML-RPC

Иногда необходимо не полностью отключать протокол, а лишь отключить его уязвимые функции, например, pingback.ping, которая часто используется в DDoS-атаках.

Для этого можно добавить в functions.php следующий код:

<?php
// Отключаем pingback XML-RPC метод
function wphide_remove_xmlrpc_pingback_methods( $methods ) {
    unset( $methods['pingback.ping'] );
    return $methods;
}
add_filter( 'xmlrpc_methods', 'wphide_remove_xmlrpc_pingback_methods' );
?>

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

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

После внесения изменений важно проверить, что XML-RPC действительно отключён.

  • Попробуйте открыть https://ваш-сайт.ru/xmlrpc.php в браузере. Если вы видите сообщение «XML-RPC server accepts POST requests only.», значит файл доступен.
  • Если при блокировке через .htaccess или Nginx вы получите ошибку 403 Forbidden, значит блокировка работает.
  • Можно использовать онлайн-сервисы для проверки XML-RPC, например проверку на wphide.ru.

Практический пример: отключение XML-RPC и защита с помощью Clearfy Pro

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

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

Резюме и рекомендации

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

Ручные методы отключения через фильтр и блокировку на уровне сервера позволяют гибко контролировать доступ и минимизировать риски.

Если же вы хотите более удобное управление безопасностью, рекомендуем обратить внимание на Clearfy Pro — плагин с удобным интерфейсом и множеством опций по защите сайта.

⭐⭐⭐⭐⭐