Что такое XML-RPC и зачем его отключать
XML-RPC — это протокол, встроенный в WordPress, который позволяет удалённо взаимодействовать с сайтом, например, публиковать записи через внешние приложения, мобильные клиенты или инструменты автоматизации. Несмотря на удобство, XML-RPC часто становится причиной проблем с безопасностью: он может использоваться для атак методом перебора паролей (brute force) или для выполнения DDoS-атак на сайт.
Поэтому многие администраторы предпочитают отключать XML-RPC, если не используют удалённые сервисы, которые его требуют. В этой статье мы рассмотрим несколько способов, как безопасно и эффективно отключить XML-RPC на вашем сайте WordPress.
Отключение XML-RPC с помощью кода в functions.php
Самый простой способ — добавить специальный фильтр, который полностью блокирует работу XML-RPC. Для этого откройте файл functions.php вашей активной темы и добавьте следующий код:
function wpdir_disable_xmlrpc() {
return false;
}
add_filter('xmlrpc_enabled', 'wpdir_disable_xmlrpc');Этот код использует хук xmlrpc_enabled, возвращая false и тем самым отключая поддержку XML-RPC. Такой способ не требует установки плагинов и не влияет на работу сайта для обычных пользователей.
Однако стоит помнить, что некоторые плагины и внешние сервисы могут использовать XML-RPC. Если вы заметите проблемы с интеграциями, возможно, стоит использовать другой метод.
Более жёсткое отключение через .htaccess
Если вы хотите запретить доступ к файлу xmlrpc.php на уровне веб-сервера, можно добавить правила в файл .htaccess (для Apache):
# Отключить доступ к xmlrpc.php
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>Этот способ блокирует все запросы к xmlrpc.php, что эффективно предотвращает любые XML-RPC вызовы. Однако если у вас есть легитимные сервисы, использующие этот протокол, они перестанут работать.
Использование плагинов для управления XML-RPC
Если вы предпочитаете готовые решения, на WordPress.org есть несколько плагинов для управления XML-RPC:
- Disable XML-RPC — простой и лёгкий плагин, который блокирует xmlrpc.php.
- WP Cerber Security — комплексное решение безопасности с возможностью отключения XML-RPC и настройки доступа.
- Clearfy Pro — плагин для оптимизации и безопасности сайта, включающий настройку отключения XML-RPC и другие полезные функции.
Плагины удобны тем, что позволяют быстро включать и отключать функции без правки кода.
Проверка отключения XML-RPC
После отключения XML-RPC важно проверить, что он действительно недоступен. Для этого можно воспользоваться онлайн-сервисом https://xmlrpc.eritreo.it/ или выполнить запрос с помощью команды curl:
curl -I https://ваш-сайт.ru/xmlrpc.phpЕсли отключение прошло успешно, вы получите ответ 403 Forbidden (при блокировке через .htaccess) или 405 Method Not Allowed / пустой ответ (при деактивации через фильтр).
Как частично ограничить XML-RPC, не отключая полностью
Если вам нужны некоторые функции XML-RPC, но вы хотите ограничить риски, можно отключить только отдельные методы. Например, запретить pingbacks, которые часто используют для DDoS атак.
Добавьте следующий код в functions.php:
function wpdir_disable_xmlrpc_methods( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}
add_filter( 'xmlrpc_methods', 'wpdir_disable_xmlrpc_methods' );Этот код отключит метод pingback.ping, сохранив при этом остальные функции XML-RPC.
Заключение
Отключение XML-RPC — важный шаг для повышения безопасности WordPress-сайта, особенно если вы не используете мобильные приложения и внешние сервисы, требующие этот протокол. Используйте методы, которые подходят именно вам: от простой деактивации через код до жёсткой блокировки через .htaccess или специализированные плагины, такие как Clearfy Pro. Не забывайте проверять результат и тестировать функциональность сайта после изменений.