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

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

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

Как диагностировать активность XML-RPC на сайте

Чтобы проверить, активен ли XML-RPC, выполните следующие шаги:

  • Попытайтесь обратиться к https://ваш-сайт.ru/xmlrpc.php через браузер. Если видите ответ с HTTP 405 или 403, XML-RPC отключен или ограничен. Если видите HTTP 200 и пустой ответ, сервис активен.
  • Посмотрите логи сервера на частые запросы к xmlrpc.php. Если их много, сайт возможно подвергается атакам.
  • Используйте онлайн-сервисы или сканеры безопасности, например плагин XML-RPC User Agent для анализа активности (временно установите для диагностики, затем удалите).

Пошаговое отключение XML-RPC через .htaccess

Самый простой способ — блокировать доступ к xmlrpc.php через веб-сервер Apache с помощью файла .htaccess. Добавьте следующий код в корень сайта (где расположен wp-config.php):

# Блокировка xmlrpc.php для всех запросов
<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Этот код полностью блокирует доступ к xmlrpc.php, отдавая ошибку 403 Forbidden.

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

Если вы не хотите блокировать через сервер, можно отключить обработку запросов на уровне WordPress. Добавьте в файл functions.php вашей темы или в собственный плагин следующий код:

add_filter('xmlrpc_enabled', '__return_false');

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

Сравнение методов блокировки XML-RPC

МетодПлюсыМинусы
Блокировка через .htaccessПолная блокировка на уровне сервера, высокая производительность, простой кодРаботает только на Apache серверах, требует доступа к файлам
Отключение через фильтр xmlrpc_enabledРаботает на всех серверах, легко внедряется в тему/плагинФайл xmlrpc.php остаётся доступен, возможны атаки на файл
Использование плагинов безопасностиУправление через UI, дополнительные функции защитыНагрузка на сайт, возможны конфликты

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

После внедрения блокировки выполните проверку:

  • Откройте в браузере https://ваш-сайт.ru/xmlrpc.php. Если видите ошибку 403 или сообщение о запрете доступа — блокировка сработала.
  • Используйте команду curl для проверки HTTP-кода:
curl -I https://ваш-сайт.ru/xmlrpc.php

В ответ должно быть HTTP/1.1 403 Forbidden или HTTP/1.1 405 Method Not Allowed.

Частые ошибки при отключении XML-RPC и их решения

  • Файл xmlrpc.php остаётся доступен после фильтра: фильтр xmlrpc_enabled не блокирует доступ к файлу, а только отключает обработку. Для полной безопасности используйте блокировку через .htaccess.
  • Ошибка 500 после внесения правил в .htaccess: проверьте синтаксис и наличие модуля mod_authz_host. В новых версиях Apache используйте директивы Require all denied вместо Order Deny,Allow:
<Files xmlrpc.php>
    Require all denied
</Files>
  • Блокировка мешает легитимным приложениям: если вы используете мобильное приложение WordPress или Jetpack, отключение XML-RPC приведёт к их неработоспособности. В этом случае рассмотрите частичную блокировку или ограничение доступа по IP.
  • Практические советы по безопасности и производительности

    • Если блокируете через .htaccess, убедитесь, что правила применяются именно в корне сайта.
    • Обновляйте WordPress и плагины, чтобы минимизировать риски через XML-RPC.
    • Для сайтов на Nginx используйте аналогичные правила в конфигурации сервера:
    location = /xmlrpc.php {
        deny all;
        access_log off;
        log_not_found off;
    }
    
    • Для мониторинга атак используйте плагины безопасности (например, Wordfence) или сервисы WAF.
    • Если нужен доступ к XML-RPC, ограничьте его IP-адресами доверенных сервисов.
    Как создать владельческий плагин для автоматизации задач в WordPress
    31.03.2026
    Как создать автономную систему комментирования в WordPress без плагинов
    04.02.2026
    Как создать внешний API для WordPress с поддержкой авторизации
    23.12.2025
    WooCommerce: как автоматически отключить товары без запаса
    30.05.2026
    WooCommerce: автоматическое удаление просроченных заказов с помощью кода
    06.06.2026