XML-RPC является встроенным механизмом удалённого взаимодействия с WordPress, который позволяет использовать мобильные приложения, публиковать записи через внешние сервисы и интегрироваться с другими платформами. Однако XML-RPC часто становится источником проблем с безопасностью и производительностью, особенно если вы не используете функции, которые он предоставляет.
Что такое XML-RPC и зачем он нужен в WordPress
XML-RPC — это протокол удалённого вызова процедур, который позволяет приложениям взаимодействовать с сайтом WordPress на уровне API. Он используется для таких задач, как публикация записей через мобильные приложения, управление сайтом через внешние сервисы, а также интеграция с плагинами и инструментами.
Тем не менее, XML-RPC может быть использован злоумышленниками для проведения атак, таких как перебор паролей (brute force), DDoS и другие. Если вы не используете возможности, которые он предоставляет, разумно отключить или ограничить его работу.
Как проверить, активен ли XML-RPC на вашем сайте
Для проверки доступности XML-RPC достаточно открыть в браузере URL https://ваш-сайт.ru/xmlrpc.php. Если вы видите сообщение «XML-RPC server accepts POST requests only.» или похожее, значит служба активна.
Также можно использовать онлайн-сервисы типа xmlrpc.eritreo.it, чтобы проверить отклик вашего сайта.
Методы отключения XML-RPC в WordPress
Существует несколько способов отключить XML-RPC. Рассмотрим самые популярные и надёжные.
Отключение XML-RPC через functions.php
Самый простой способ — добавить фильтр, который отключит весь функционал XML-RPC:
add_filter('xmlrpc_enabled', '__return_false');
Добавьте этот код в файл functions.php вашей активной темы или в файл плагина. Это полностью отключит XML-RPC, и запросы к xmlrpc.php будут возвращать ошибку.
Блокировка доступа к xmlrpc.php через .htaccess
Если ваш сервер работает на Apache, можно полностью заблокировать доступ к xmlrpc.php через настройки веб-сервера. Добавьте в корень сайта файл .htaccess следующий код:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Это запрещает любые обращения к этому файлу на уровне сервера, что эффективно блокирует XML-RPC.
Использование плагинов для управления XML-RPC
Если вы предпочитаете графический интерфейс, можно использовать плагины. Вот несколько проверенных вариантов:
- Disable XML-RPC — простой плагин, который полностью отключает XML-RPC.
- iThemes Security — комплексный плагин безопасности с возможностью отключения XML-RPC и другими функциями защиты.
- Clearfy Pro — среди множества оптимизаций есть возможность отключить XML-RPC и другие ненужные функции WordPress. Подробнее на wpshop.ru.
Частичное ограничение работы XML-RPC
Если отключать полностью нельзя, но нужно защититься от атак, можно ограничить доступ или отключить некоторые методы XML-RPC.
Отключение конкретных методов XML-RPC через фильтр
Например, чтобы отключить метод pingback.ping (часто используется для DDoS-атак), можно добавить следующий код:
function wpsetup_disable_xmlrpc_methods( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}
add_filter( 'xmlrpc_methods', 'wpsetup_disable_xmlrpc_methods' );
Это оставит XML-RPC, но заблокирует только пингбеки.
Ограничение доступа к xmlrpc.php по IP
Если у вас есть фиксированные IP, с которых выполняется легитимный доступ, можно разрешить доступ только с них. Для Apache в .htaccess:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 123.45.67.89
</Files>
Замените 123.45.67.89 на нужный IP.
Как проверить, что XML-RPC действительно отключен
После внесения изменений проверьте снова по адресу https://ваш-сайт.ru/xmlrpc.php. Если доступ закрыт или вы видите ошибку, значит всё работает.
Также можно запустить тесты с помощью плагинов или онлайн-сервисов, чтобы убедиться, что XML-RPC методы не доступны.
Заключение
Отключение или ограничение XML-RPC — простой и эффективный способ повысить безопасность и производительность WordPress сайта, если вы не используете его функционал. Варианты от простого фильтра до блокировки на уровне сервера позволяют гибко настроить защиту под свои задачи.
Если вы хотите расширить возможности оптимизации и безопасности, обратите внимание на плагин Clearfy Pro с удобным интерфейсом и множеством полезных функций.