wp-kurs.ru wordpress WP-Kurs

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

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

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

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

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

Поэтому отключение XML-RPC — эффективный способ снизить риски и повысить безопасность вашего ресурса.

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

Самый простой способ проверить — открыть в браузере URL https://ваш-сайт.ru/xmlrpc.php. Если вы видите сообщение «XML-RPC server accepts POST requests only.», значит интерфейс активен. Если же вы получаете ошибку 403 или 404, значит XML-RPC заблокирован.

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

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

1. Отключение через файл functions.php

Самый простой и бесплатный способ — добавить в файл functions.php активной темы следующий код:

function wp_kurs_disable_xmlrpc( $methods ) {
    return [];
}
add_filter( 'xmlrpc_methods', 'wp_kurs_disable_xmlrpc' );

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

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

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

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Это полностью заблокирует любые запросы к xmlrpc.php, что надёжно и эффективно снижает нагрузку и повышает безопасность.

3. Использование плагина для отключения XML-RPC

Если вы предпочитаете использовать готовые решения, на WordPress.org есть несколько плагинов, которые позволяют отключить XML-RPC без редактирования кода:

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

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

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

Например, вы можете разрешить только метод wp.getUsersBlogs, который необходим для авторизации, и запретить остальные.

function wp_kurs_restrict_xmlrpc_methods( $methods ) {
    unset( $methods['pingback.ping'] );
    unset( $methods['wp.deletePost'] );
    // Удаляем или отключаем другие методы по необходимости
    return $methods;
}
add_filter( 'xmlrpc_methods', 'wp_kurs_restrict_xmlrpc_methods' );

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

Дополнительные меры безопасности, связанные с XML-RPC

Помимо отключения или ограничения XML-RPC, рекомендуется:

  • Ограничить количество запросов к xmlrpc.php с помощью правил брандмауэра или плагинов безопасности (например, Wordfence, iThemes Security).
  • Использовать сложные пароли и двухфакторную аутентификацию, чтобы предотвратить перебор паролей через XML-RPC.
  • Регулярно обновлять WordPress, темы и плагины для закрытия известных уязвимостей.

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

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

Используйте для отключения либо кодовые решения в functions.php, либо блокировку через сервер, либо специализированные плагины, например, Clearfy Pro для комплексной защиты.

×
Делай сайт лучше!!

-20% на премиум темы и плагины

Использовать скидку ⋙