XML-RPC — это протокол, который позволяет удалённо взаимодействовать с сайтом WordPress, например, публиковать записи через мобильные приложения или внешние сервисы. Несмотря на удобство, XML-RPC часто становится причиной уязвимостей и атак на сайт, таких как brute force или DDoS. В этой статье разберём, как правильно отключить XML-RPC в WordPress, чтобы повысить безопасность вашего ресурса.
Что такое XML-RPC и почему его отключают
XML-RPC был добавлен в WordPress для удалённого доступа к сайту. Это удобно, если вы используете мобильные приложения, внешние редакторы или сервисы, которые требуют взаимодействия с сайтом. Но многие сайты не используют этот функционал, и его наличие становится точкой входа для атак.
Основные причины отключения XML-RPC:
- Защита от перебора паролей (brute force) через XML-RPC методы.
- Предотвращение DDoS атак, которые используют xmlrpc.php.
- Уменьшение количества ненужных запросов к серверу.
Если вы не используете мобильные приложения или внешние сервисы, которые нуждаются в XML-RPC, отключение — правильный выбор.
Способы отключения XML-RPC в WordPress
Существует несколько способов отключить XML-RPC в WordPress: с помощью плагинов, через .htaccess или добавление кода в functions.php. Рассмотрим каждый из них подробно.
Отключение через functions.php
Добавьте следующий код в файл functions.php вашей активной темы или в плагин для кастомных функций:
function wpmonitor_disable_xmlrpc() {
add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpmonitor_disable_xmlrpc');Этот фильтр полностью отключит обработку XML-RPC внутри WordPress, возвращая false на запросы к xmlrpc.php.
Отключение через .htaccess
Если у вас веб-сервер Apache, можно заблокировать доступ к файлу xmlrpc.php на уровне сервера. Для этого добавьте в файл .htaccess в корневой папке сайта следующий код:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>Этот способ хорош тем, что запросы к XML-RPC даже не доходят до WordPress, снижая нагрузку на сервер.
Использование плагинов для отключения XML-RPC
Если вы не хотите редактировать код, можно установить специальный плагин. Например:
- Disable XML-RPC — простой плагин, который полностью отключит XML-RPC.
- Clearfy Pro — многофункциональный плагин оптимизации и безопасности, который позволяет отключать XML-RPC и другие ненужные сервисы одним кликом.
Использование плагина удобно, если вы хотите управлять безопасностью через интерфейс без правок кода.
Проверка отключения XML-RPC
После отключения XML-RPC важно проверить, что сайт действительно не отвечает на запросы к xmlrpc.php. Для этого можно воспользоваться онлайн-сервисами или выполнить curl-запрос:
curl -I https://example.com/xmlrpc.phpЕсли всё настроено правильно, вы должны получить ответ 403 Forbidden (если блокировали через .htaccess) или 405 Method Not Allowed / пустой ответ (если отключили через фильтр).
Как временно разрешить XML-RPC для конкретных IP
Иногда нужно оставить XML-RPC включённым, но ограничить доступ только доверенным IP-адресам. Для этого можно использовать .htaccess с условием:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
Allow from 234.234.234.234
</Files>Замените IP-адреса на те, которые вы доверяете. Такой способ позволяет сохранить функциональность, но исключить атаки с других адресов.
Дополнительные рекомендации по безопасности WordPress
Отключение XML-RPC — важный шаг, но не единственный для защиты сайта. Рекомендуем также:
- Использовать сложные пароли и двухфакторную аутентификацию.
- Регулярно обновлять WordPress, темы и плагины.
- Устанавливать плагины безопасности, например, Clearfy Pro.
- Настроить лимиты на количество попыток входа.
- Использовать брандмауэр и мониторинг активности.
Все эти меры вместе помогут значительно повысить безопасность вашего WordPress-сайта и сохранить ваши данные в безопасности.