wphow.ru wordpress WPHow

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

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

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

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

Но с открытым XML-RPC увеличивается риск различных атак:

  • Брутфорс-атаки на логин и пароль;
  • DDoS-атаки с использованием метода system.multicall;
  • Использование уязвимостей в XML-RPC для обхода защиты.

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

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

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

Также можно проверить с помощью curl в командной строке:

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

Если в ответе будет статус 200, то XML-RPC включён.

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

Самый простой способ отключить XML-RPC — добавить специальный фильтр в файл functions.php вашей активной темы. Этот способ не требует установки дополнительных плагинов и не влияет на ядро WordPress.

Добавьте следующий код в functions.php:

<?php
// Отключение XML-RPC полностью
function wphow_disable_xmlrpc($methods) {
    return [];
}
add_filter('xmlrpc_methods', 'wphow_disable_xmlrpc');

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

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

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

# Блокировка XML-RPC
<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Этот способ блокирует все HTTP-запросы к файлу, что эффективно отключает XML-RPC. Минус — если вам нужно будет использовать мобильные приложения или Jetpack, они перестанут работать.

Отключение XML-RPC на Nginx

Если ваш сервер работает на Nginx, блокировать файл нужно через конфигурацию nginx.conf или отдельный конфигурационный файл сайта.

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

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

После внесения изменений перезапустите Nginx командой:

sudo systemctl reload nginx

Выборочное отключение XML-RPC с разрешением pingback

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

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

Это полезно, если вы хотите ограничить возможности протокола, но сохранить функцию pingback.

Использование плагинов для управления XML-RPC

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

  • Clearfy Pro — плагин для оптимизации WordPress с функцией отключения XML-RPC и других уязвимых точек;
  • Disable XML-RPC — лёгкий плагин, который полностью отключает XML-RPC;
  • WP Cerber Security — комплексная защита, где можно гибко настраивать доступ к XML-RPC.

Для установки Clearfy Pro с учётом UTM-меток для wphow.ru используйте ссылку: Clearfy Pro на WPSHOP.ru.

Проверка отключения XML-RPC после внесения изменений

После того, как вы отключили XML-RPC любым из способов, важно проверить, что протокол действительно недоступен. Самый простой способ — снова обратиться по адресу https://ваш-сайт.ru/xmlrpc.php. Теперь должен быть ответ 403 Forbidden или 404 Not Found.

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

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

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

Если нужна более тонкая настройка и другие функции безопасности, рассмотрите плагины типа Clearfy Pro.

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

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙