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