
Файл xmlrpc.php — частая мишень для хакерских атак на сайты под управлением WordPress. Если вы хотите повысить безопасность своего ресурса и снизить нагрузку на сервер, стоит разобраться, как отключить xmlrpc.php и нужно ли это делать в вашем случае. Статья будет полезна владельцам сайтов, администраторам и всем, кто заботится о защите.
Коротко
- xmlrpc.php — интерфейс для удалённого управления WordPress, который часто используют для атак.
- Отключение снижает риск брутфорса, DDoS и эксплуатации уязвимостей.
- Можно отключить через плагин, код в functions.php или настройки сервера.
- Перед отключением проверьте, не нужен ли файл для работы ваших плагинов или мобильных приложений.
Что такое xmlrpc.php в WordPress и зачем он нужен
XML-RPC — это протокол удалённого вызова процедур, который позволяет внешним приложениям взаимодействовать с сайтом. В WordPress файл xmlrpc.php обрабатывает такие запросы: публикация записей через мобильное приложение, пингбэки, интеграция с Jetpack и другими сервисами.
Раньше XML-RPC был основным способом подключения мобильных приложений WordPress. Сегодня его заменил REST API, но файл всё ещё присутствует в ядре и активен по умолчанию. Многие владельцы сайтов не используют его функциональность, поэтому отключение xmlrpc.php — разумный шаг для усиления безопасности.
Почему xmlrpc.php — уязвимость WordPress
Злоумышленники активно эксплуатируют xmlrpc.php по нескольким причинам:
- Брутфорс-атаки. Метод system.multicall позволяет перебирать сотни паролей за один HTTP-запрос, что затрудняет обнаружение.
- DDoS-атаки. Файл можно использовать для усиления атак: запросы к xmlrpc.php заставляют сервер выполнять ресурсоёмкие операции.
- Пингбэк-спам. Через pingback.ping злоумышленники рассылают спам и используют сайт для атак на другие ресурсы.
По данным Wordfence, атаки на xmlrpc.php входят в число самых распространённых векторов взлома WordPress. Отключение файла, если он не нужен, существенно снижает риски.
Как проверить, используется ли xmlrpc.php на вашем сайте
Прежде чем отключать, стоит проверить, обращается ли кто-то к файлу. Для этого:
- Просмотр логов сервера. Найдите в логах доступа записи с упоминанием xmlrpc.php. Если запросы редкие и только от вас — файл можно отключать.
- Тестовый запрос. Отправьте POST-запрос на адрес
https://ваш-сайт.ru/xmlrpc.phpс телом. Если вернётся список методов — файл активен.system.listMethods - Плагины безопасности. Wordfence, iThemes Security и другие показывают статистику обращений к xmlrpc.php.
Если сомневаетесь, лучше проконсультироваться со специалистом. Наша команда администрирования сайтов поможет проанализировать логи и принять правильное решение.
Способы отключить xmlrpc.php в WordPress
Есть несколько способов отключения — от простых плагинов до правки серверных конфигов. Выбирайте тот, что соответствует вашему уровню комфорта и доступам.
1. Отключение через плагин
Самый простой способ для новичков — использовать плагин безопасности. Например:
- Disable XML-RPC — лёгкий плагин, который полностью отключает XML-RPC.
- Wordfence Security — в настройках можно заблокировать доступ к xmlrpc.php.
- iThemes Security — также имеет опцию отключения.
Установите плагин, активируйте и включите соответствующую опцию. Минус — дополнительная нагрузка от плагина, но для большинства сайтов это некритично.
2. Добавление кода в functions.php
Если не хотите ставить плагин, добавьте фильтр в файл functions.php вашей темы (лучше дочерней). Пример кода:
add_filter('xmlrpc_enabled', '__return_false');
Это отключит все методы XML-RPC. Чтобы отключить только пингбэки, используйте:
add_filter('wp_xmlrpc_server_class', function() { return 'WP_XMLRPC_Server_Disabled'; });
Будьте осторожны при редактировании файлов темы — ошибка может привести к поломке сайта. Если не уверены, обратитесь к разработчику.
3. Блокировка на уровне сервера
Наиболее эффективный метод — запретить доступ к файлу через конфигурацию веб-сервера. Для Apache добавьте в .htaccess:
Order Deny,Allow
Deny from all
Для Nginx в конфигурацию сайта:
location = /xmlrpc.php {
deny all;
access_log off;
}
После внесения изменений перезагрузите сервер или проверьте конфигурацию. Этот метод полностью блокирует доступ к файлу, не влияя на остальную работу WordPress.
Сравнение способов отключения xmlrpc.php
| Способ | Сложность | Эффективность | Риски |
|---|---|---|---|
| Плагин | Низкая | Высокая | Дополнительная нагрузка |
| Код в functions.php | Средняя | Высокая | Ошибка может сломать сайт |
| Блокировка на сервере | Высокая (требует доступа) | Максимальная | Неправильная конфигурация может повлиять на сервер |
Что делать, если отключение xmlrpc.php сломало сайт
Иногда после отключения перестают работать некоторые функции: мобильное приложение, публикация по email, интеграции. В этом случае:
- Верните изменения: удалите код из functions.php или уберите блокировку из .htaccess.
- Проверьте, какие плагины или сервисы использовали XML-RPC, и найдите альтернативу.
- Если нужен XML-RPC, но хотите защититься, ограничьте доступ по IP или используйте плагин с более тонкими настройками.
Если вы столкнулись с проблемами или атакой, наша услуга удаления вирусов и защиты сайта поможет восстановить работоспособность и предотвратить повторные инциденты.
Заключение: безопасность WordPress без лишних рисков
Отключение xmlrpc.php — простой и действенный шаг для защиты сайта, если вы не используете его функциональность. Выберите удобный способ, проверьте работоспособность сайта и наслаждайтесь спокойствием. Если вы хотите комплексно обезопасить свой проект или нуждаетесь в профессиональной поддержке, специалисты Perfect Team готовы помочь. Мы занимаемся созданием, продвижением и защитой сайтов с 2007 года и знаем, как сделать ваш ресурс надёжным.
Частые вопросы
Можно ли отключить xmlrpc.php без плагинов?
Да, можно добавить код в файл functions.php темы или заблокировать доступ к файлу через .htaccess (Apache) или конфигурацию Nginx.
Что будет, если отключить xmlrpc.php?
Перестанут работать функции, использующие XML-RPC: мобильное приложение WordPress, пингбэки, некоторые плагины (например, Jetpack). Обычный сайт продолжит работать без изменений.
Как проверить, что xmlrpc.php отключён?
Отправьте POST-запрос на адрес https://ваш-сайт.ru/xmlrpc.php. Если файл отключён, вы получите ошибку 403 или 404 вместо списка методов.
Нужно ли отключать xmlrpc.php, если я использую WooCommerce?
Если вы не используете мобильное приложение WooCommerce или сторонние сервисы, работающие через XML-RPC, отключение безопасно. В противном случае найдите альтернативу или ограничьте доступ.