wpcat.ru wordpress WPCat.ru

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

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

Что такое XML-RPC и почему его отключают (безопасность WordPress)

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

Проблемы:

  • Используется для перебора паролей при Brute Force-атаках;
  • Часто применяется для DDoS-атак, отправляя множество запросов;
  • Позволяет выполнять нежелательные действия, если не ограничен;
  • Большинство пользователей не пользуются функционалом XML-RPC, поэтому его отключение не повлияет на работу сайта.

Таким образом, отключение XML-RPC часто является эффективной мерой защиты.

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

Проверить доступность XML-RPC просто. Для этого достаточно открыть в браузере или с помощью curl следующий URL вашего сайта:

https://example.com/xmlrpc.php

Если вы видите сообщение «XML-RPC server accepts POST requests only.», значит служба активна. Если получаете ошибку 403 или 404 — скорее всего, XML-RPC отключён.

Вы также можете проверить это с помощью плагинов безопасности или онлайн-сервисов сканирования уязвимостей.

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

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

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

add_filter('xmlrpc_enabled', '__return_false');

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

Отключение через .htaccess (для Apache)

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

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

Это полностью запретит любые запросы к файлу. Минус — такой запрет нельзя гибко настраивать.

Отключение через nginx

Для nginx добавьте в конфигурацию сайта:

location = /xmlrpc.php {
    deny all;
    return 403;
}

После этого нужно перезагрузить nginx.

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

Для тех, кто предпочитает GUI, есть плагины, упрощающие управление XML-RPC:

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

Когда отключать XML-RPC не стоит

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

Ограничение доступа к XML-RPC по IP

Можно разрешить доступ к xmlrpc.php только с определённых IP-адресов:

# Пример для Apache
<Files xmlrpc.php>
  Order Deny,Allow
  Deny from all
  Allow from 123.123.123.123
</Files>

Такой подход позволяет сохранить функциональность для надежных сервисов и закрыть доступ для всех остальных.

Блокировка определённых методов XML-RPC

С помощью фильтров WordPress можно запретить опасные методы, например:

function wpcat_filter_xmlrpc_methods($methods) {
    unset($methods['pingback.ping']); // отключаем пингбеки
    unset($methods['wp.getUsersBlogs']); // отключаем получение блогов
    return $methods;
}
add_filter('xmlrpc_methods', 'wpcat_filter_xmlrpc_methods');

Это уменьшит риск атак при сохранении базового функционала.

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

После внесения изменений стоит проверить, что сайт работает корректно:

  • Проверьте доступность xmlrpc.php — он должен быть заблокирован или возвращать 403;
  • Проверьте работу мобильных приложений WordPress, если вы их используете;
  • Проверьте логи сервера на наличие ошибок и необычной активности;
  • Используйте онлайн-сканеры безопасности, чтобы убедиться в отсутствии уязвимостей.

Выводы и рекомендации

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

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

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙