Как отключить XML-RPC в WordPress для защиты от атак

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

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

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

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

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

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

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

  • Если вы не используете официальное мобильное приложение WordPress или сторонние сервисы публикации, скорее всего, XML-RPC не нужен.
  • Проверьте логи сервера на наличие запросов к xmlrpc.php. Частые запросы могут указывать на использование или атаки.
  • Используйте инструменты безопасности, такие как Wordfence, которые могут показать активность XML-RPC.

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

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

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

<?php
function wplogin_disable_xmlrpc() {
    return false;
}
add_filter('xmlrpc_enabled', 'wplogin_disable_xmlrpc');
?>

Добавьте этот код в конец файла functions.php, и протокол будет отключён.

Блокировка через .htaccess (для Apache)

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

# Block XML-RPC requests
<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

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

Блокировка через Nginx

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

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

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

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

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

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

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

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

<?php
function wplogin_restrict_xmlrpc_ip( $allowed, $host ) {
    $allowed_ips = array('123.123.123.123', '111.111.111.111'); // замените на свои IP
    if ( ! in_array( $host, $allowed_ips ) ) {
        return false;
    }
    return $allowed;
}
add_filter( 'xmlrpc_ip_blacklist', 'wplogin_restrict_xmlrpc_ip', 10, 2 );
?>

Этот код разрешит доступ к XML-RPC только с определённых IP-адресов.

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

После применения изменений протестируйте доступ к xmlrpc.php:

  • Попробуйте в браузере перейти по адресу https://ваш-сайт.ru/xmlrpc.php. Если вы видите сообщение XML-RPC server accepts POST requests only., значит файл доступен (не отключён).
  • Если видите ошибку 403 или 404, значит блокировка работает.
  • Для более точного теста можно использовать специальные онлайн-сервисы проверки XML-RPC или плагины безопасности.

Заключение

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

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

Используйте приведённые методы и рекомендации для защиты своего сайта от распространённых атак через XML-RPC.

Как решить проблему: не работает вход в WordPress при использовании WooCommerce
30.05.2026
Как удалить неиспользуемые плагины в WordPress через код
29.11.2025
Как отключить доступ к wp-login.php для определённых ролей пользователей в WordPress
26.04.2026
Как автоматизировать создание резервных копий WordPress
18.11.2025
Как добавить логины через соцсети в WordPress
26.02.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.