XML-RPC WordPress

Оригинальное название: WordPress XML-RPC

Коротко

Протокол удалённого управления WordPress через файл xmlrpc.php: внешние программы публикуют записи и вызывают функции сайта, обмениваясь XML-сообщениями по HTTP.

Что такое «XML-RPC WordPress»

До появления REST API это был единственный стандартный способ работать с WordPress без браузера. Через XML-RPC писали посты из настольных редакторов вроде Windows Live Writer, из первых мобильных приложений, принимали уведомления pingback от других блогов. Помимо собственных методов wp.* файл понимает старые интерфейсы Blogger API, metaWeblog и Movable Type, поэтому с ним совместимы программы, написанные ещё под другие блог-платформы.

Каждый вызов — это POST-запрос на /xmlrpc.php с XML-документом внутри. Логин и пароль передаются прямо в теле запроса, без отдельного токена.

Как выглядит вызов

<?xml version="1.0"?>
<methodCall>
  <methodName>wp.getUsersBlogs</methodName>
  <params>
    <param><value><string>admin</string></value></param>
    <param><value><string>пароль</string></value></param>
  </params>
</methodCall>

Ответ тоже приходит в XML: список сайтов пользователя или ошибка авторизации.

Почему его закрывают

Именно этот формат сделал xmlrpc.php любимой мишенью ботов. Метод system.multicall позволяет уложить сотни попыток входа в один запрос, и защита от перебора на странице входа его не видит. Pingback злоумышленники использовали, чтобы заставить тысячи сайтов одновременно обращаться к жертве. Если сайту протокол не нужен, его лучше выключить. Фильтр add_filter( 'xmlrpc_enabled', '__return_false' ); отключает только методы с авторизацией, поэтому надёжнее закрыть файл на уровне веб-сервера:

location = /xmlrpc.php {
    deny all;
}

Что проверить перед отключением

Некоторые сервисы до сих пор опираются на XML-RPC: старые версии Jetpack, отдельные десктопные редакторы, интеграции с внешними системами публикации. Современные инструменты переходят на REST-интерфейс и пароли приложений. Перед блокировкой стоит посмотреть журнал доступа: если запросы к /xmlrpc.php приходят только с незнакомых адресов, файл можно смело закрывать. После взлома это одна из первых точек, которые проверяют при восстановлении сайта на WordPress.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение