XML-RPC — это протокол, который позволяет удалённо взаимодействовать с сайтом на WordPress. Он используется для публикации записей через внешние приложения, мобильные клиенты, а также некоторыми плагинами и сервисами. Однако XML-RPC часто становится причиной уязвимостей и атак, например, brute force или DDoS. В этой статье подробно разберём, как безопасно отключить XML-RPC, какие есть нюансы и альтернативы.
Что такое XML-RPC в WordPress и зачем он нужен
Функционал XML-RPC был добавлен в WordPress давно для возможности удалённого управления сайтом. Через XML-RPC можно:
- публиковать записи из мобильных приложений;
- использовать внешние сервисы для публикации или редактирования контента;
- подключаться к Jetpack и другим плагинам, использующим этот протокол;
- производить автоматизированные задачи через API.
Но в большинстве случаев обычным сайтам этот функционал не нужен. В то же время атаки на XML-RPC — распространённый способ взлома.
Риски и проблемы безопасности, связанные с XML-RPC
Основные риски:
- Brute force атаки: XML-RPC позволяет делать несколько попыток входа в систему одним запросом, что упрощает подбор паролей.
- DDoS-атаки: массовые запросы к XML-RPC могут перегрузить сервер.
- Использование уязвимостей в XML-RPC методах: некоторые старые версии WordPress и плагинов содержат баги, позволяющие выполнить произвольный код.
Поэтому если вы не используете функционал XML-RPC, его лучше отключить.
Способы отключения XML-RPC в WordPress
Отключение через functions.php
Самый простой способ — добавить код в файл functions.php активной темы. Например:
function wpchecker_disable_xmlrpc() {
add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpchecker_disable_xmlrpc');Этот фильтр отключит весь функционал XML-RPC, WordPress перестанет отвечать на соответствующие запросы.
Блокировка доступа через .htaccess
Если сервер работает на Apache, можно запретить доступ к файлу xmlrpc.php через .htaccess. Добавьте в корневой каталог сайта файл .htaccess или дополните его следующим кодом:
<Files xmlrpc.php>
Order deny,allow
Deny from all
</Files>Это полностью блокирует доступ к XML-RPC на уровне сервера, что более эффективно для защиты.
Использование плагинов для управления XML-RPC
Если не хотите править код вручную, можно воспользоваться плагинами:
- Disable XML-RPC — простой плагин, который отключает XML-RPC без настроек;
- Clearfy Pro — многофункциональный плагин для оптимизации и безопасности, в том числе позволяет выключить XML-RPC;
- WP Security Audit Log — плагин для мониторинга безопасности, который поможет отследить попытки использования XML-RPC.
Например, чтобы отключить в Clearfy Pro, достаточно активировать соответствующую опцию в настройках безопасности.
Альтернативы и рекомендации, если нужна часть функционала XML-RPC
Если вы используете Jetpack или мобильные приложения, полное отключение XML-RPC может нарушить их работу. В этом случае:
- Ограничьте доступ к
xmlrpc.phpпо IP-адресам; - Используйте плагины для ограничения количества запросов и блокировки подозрительных IP;
- Рассмотрите возможность перехода на REST API WordPress, который более безопасен и гибок.
Пример ограничения доступа по IP в .htaccess:
<Files xmlrpc.php>
Order deny,allow
Deny from all
Allow from 123.45.67.89
</Files>Где 123.45.67.89 — IP, с которого разрешён доступ.
Проверка отключения XML-RPC и диагностика
После внесения изменений стоит проверить, что XML-RPC действительно отключён. Для этого:
- Попробуйте обратиться к
https://ваш_сайт/xmlrpc.phpв браузере — должна быть ошибка или пустой ответ; - Используйте онлайн сервисы проверки, например https://xmlrpc.eritreo.it/;
- Проверьте логи сервера на предмет запросов к
xmlrpc.phpи убедитесь в отсутствии активности.
Итоговые рекомендации по безопасности WordPress
Отключение XML-RPC — один из важных шагов для защиты сайта, особенно если вы не используете функции удалённого управления. Совмещайте это с другими мерами безопасности:
- Используйте надежные пароли и двухфакторную аутентификацию;
- Регулярно обновляйте WordPress и плагины;
- Устанавливайте плагины безопасности и мониторинга;
- Ограничивайте доступ по IP для административных функций;
- Делайте резервные копии сайта.
Если хотите подробнее узнать о плагинах Clearfy Pro и других продуктах для безопасности WordPress, смотрите на WPSHOP Clearfy Pro.