XML-RPC в WordPress до сих пор нужен не всем, но на многих сайтах он остаётся включённым по умолчанию. Из-за этого лишний endpoint /xmlrpc.php продолжает принимать запросы, хотя сайт уже давно публикуется только через админку или REST API. На практике это лишняя поверхность атаки и ещё один источник шума в логах.
Если вы не пользуетесь мобильным приложением WordPress, внешними сервисами публикации, Jetpack в старом режиме или сторонними клиентами, XML-RPC чаще всего можно отключить. Но делать это нужно аккуратно: на некоторых сайтах он всё ещё завязан на рабочие сценарии.
Когда XML-RPC действительно стоит отключать
Сначала полезно понять, зачем он вообще нужен. XML-RPC — это старый механизм удалённого доступа к WordPress. Через него можно публиковать записи, редактировать контент и выполнять часть действий из внешних клиентов. Если таких сценариев нет, endpoint только создаёт риск и не даёт пользы.
Сценарии, где отключение обычно безопасно
- контент публикуется только из админки WordPress;
- нет мобильного приложения WordPress;
- нет внешних сервисов, которые отправляют записи через XML-RPC;
- Jetpack не использует XML-RPC для нужных вам функций;
- сайт не интегрирован со старым софтом, который умеет работать только через XML-RPC.
Когда отключать нельзя без проверки
- вы публикуете материалы из мобильного приложения WordPress;
- используете внешние клиенты для постинга;
- есть интеграции, которые до сих пор обращаются к
xmlrpc.php; - на сайте есть старые автоматизации, написанные под XML-RPC, а не под REST API.
Диагностика: используется ли XML-RPC на вашем сайте
Перед изменениями проверьте, есть ли реальные обращения к endpoint. Самый простой способ — посмотреть логи веб-сервера или временно открыть страницу /xmlrpc.php в браузере. Нормальная реакция WordPress на GET-запрос обычно выглядит как сообщение о том, что XML-RPC сервер принимает только POST-запросы. Это не значит, что он безопасен, но подтверждает, что файл доступен.
Если у вас есть доступ к логам, ищите обращения к xmlrpc.php. Часто там видны массовые попытки брутфорса или pingback-атаки. Это уже хороший аргумент в пользу отключения.
grep