Xmlrpc php что за файл

Обновлено: 07.07.2024

XML-RPC в WordPress существует еще с самого его появления и является весьма важной составляющей. Без него WordPress был просто недоступен, но не все так гладко, ведь у XML-RPC есть ряд недостатков.

Основным недостатком является то, что он может открыть на вашем сайте слабые места. Поэтому позднее его заменили на WordPress REST API, который в свою очередь отлично взаимодействует с другими приложениями.

Итак, представляем для тех, кто не очень силен в этой теме, полное руководство по xmlrpc.php в WordPress (что это такое, риски и как отключить).

Что такое XML-RPC?

XML-RPC появился задолго до появления WordPress. Он существовал лишь в программном обеспечении блогов. В следствие этого в 2003 году был создан WordPress.

В первых версиях WordPress XML-RPC изначально был отключен. Однако в версии 3.5 его снова запустили.

Раньше, чтобы обеспечивать связь с другими платформами для ведения блогов, XML-RPC взаимодействовал, помимо приложения, и с WordPress.

изначально был отключен

С того момента, как появились REST API и интеграция в ядро WordPress, надобность в использовании файла xmlrpc.php пропала. На сегодняшний день REST API используют в мобильном приложении WordPress. Кроме того REST API располагает намного большими возможностями чем xmlrpc.php

Рекомендуется отключать xmlrpc на WordPress. Причина этого в том, что он может обнаружить уязвимость и слабые места на вашем сайте и стать целью атак. Так как XML-RPC больше не нужен, следует его убрать для обеспечения безопасности вашего сайта.

Причина по которой xmlrpc окончательно не убирали из WordPress заключается в том, что у WP всегда присутствует обратная связь, но в большинстве случаев веб-мастера пренебрегают обновлениями, и если используют версию для появления REST API, то доступ к xmlrpc им как никак необходим.

Атаки, с которыми можно столкнуться, не выключив xmlrpc

DDOS атака

Основной функцией в xmlrpc были пингбеки и трекбеки. Это уведомления, появляющиеся во время того, как другой блог или сайт ссылается на ваш контент.

Если на сайте включен XML-RPC, хакеры могут организовать DDoS-атаку на сайт, используя xmlrpc.php, отправляя на сайт пингбеки и тем самым перегружая ваш сервер.

Brute Force атаки

Все время при аутентификации xmlrpc.php всегда отправляет имя пользователя и пароль, что является очень опасным. При помощи этого злоумышленники могут использовать полученные данные и получить доступ к сайту. Данная атака позволит им изменить код и повредить базу данных. Именно поэтому следует отключить xmlrpc.

Чтобы отключить xmlrpc.php, для начала нужно определить включен ли он вообще. Данный процесс не из легких. Из-за того, что файл является частью каждой установки WordPress и будет присутствовать даже если xml-rpc отключен, при удалении следует сперва создать резервную копию сайта.

Чтобы определить, активен ли xmlrpc.php на сайте, необходимо использовать сервис проверки. Сервис тут же определит, включен ли он.

Как отключить xmlrpc?

Простейшим способом будет установка плагина Disable XML-RPC. Именно данный плагин отключает XML-RPC на сайте WordPress.

В случае, если не желаете использовать плагин, можно воспользоваться фильтром и файлом functions.php

Помимо данной функции можно использовать .htacess фаил и добавить в него:

<Files xmlrpc.php>

Order Allow,Deny

Deny from all

</Files

В каких случаях стоит оставить XML-RPC?

Вы не используете «REST API», но вам необходимо обмениваться данными между вашим WordPress сайтом и другими системами.

Нет возможности обновить ядро WordPress до версии 4.4 или выше.

обеспечивать связь с другими платформами для ведения блогов

Вы работаете с внешним приложением, которое не могут получить доступ к WordPrss «REST API», но хорошо работают с «XML-RPC».

Выводы

Файл находится в WordPress лишь по одной причине: из-за обратной совместимости. Если вы хотите чтобы сайт работал в штатном режиме, вам следует отключить XML-RPC.

XML-RPC был разработан еще до создания WordPress.

XML-RPC является опасным для сайта и информации на нем.

На сегодняшний день XML-RPC сменила REST API.

Так что, отключив данную функцию, вы повысите безопасность своего сайта.

Что такое xmlrpc.php в WordPress и зачем его отключать

В WordPress всегда был встроенный инструмент для удалённого обращения к вашему сайту. Действительно, иногда нужно добраться до своего сайта, а компьютер далеко от вас. Длительное время решением был файл под названием xmlrpc.php. Однако последние годы этот файл стал большей проблемой, чем решением.

Что такое Xmlrpc.php?

Например, скажем вы хотите сделать публикацию на своём сайте с вашего мобильного телефона. Вам нужно использовать удалённый доступ предоставляемый xmlrpc.php.

Главным функционалом xmlrpc.php являются возможность подключаться к сайту со смартфона, реализация трекбеков и линкбеков с других сайтов и некоторые функции, связанные с плагином Jetpack.

Зачем был создан Xmlrpc.php и как он использовался?

Реализация XML-RPC уходит далеко в ранние дни WordPress и даже до того, как WordPress стал WordPress-ом.

Возвращаясь в те времена, когда интернет только недавно появился, соединения были очень медленными и процесс записи и публикации в вебе был намного сложнее и времязатратнее. Вместо внесения изменений сразу через браузер, большинство делали их в офлайне и потом копировали и вставляли свой контент уже онлайн. И этот процесс был далёк от идеала.

Решением (на тот момент) было создание клиента для офлайн блоггинга, где вы могли составлять свой контент, затем подключаться к своему блогу и публиковать его. Это подключение осуществлялось через XML-RPC. С основным функционалом XML-RPC ранние приложения используя подобные подключения предоставляли людям возможность заходить на их сайты WordPress с других устройств.

XML-RPC сегодня

В 2008 году с версией 2.6 WordPress, появилась опция включения и выключения XML-RPC. Однако с релизом WordPress приложения для iPhone, поддержка XML-RPC была включена по умолчанию и не было возможности для отключения. Так осталось и поныне.

Конечно функциональность, предоставляемая этим файлом значительно уменьшилась со временем, и размер файла уменьшился с 83kb до 3kb, он уже не играет такой роли, как прежде.

Свойства XML-RPC

С новым интерфейсом программирования приложений (API) WordPress мы можем ожидать, что XML-RPC будет уже отключён полностью. Сегодня этот новый API всё ещё на этапе испытаний и может быть включён только через специальный плагин.

Хотя вы можете ожидать, что API будет включён непосредственно в ядро WordPress в будущем, что полностью исключит необходимость использования xmlrpc.php.

Новый API не идеален, но он обеспечивает хорошую надёжную защиту, в отличие от xmlrpc.php.

Зачем отключать Xmlrpc.php

Самой большой проблемой, связанной с XML-RPC, является безопасность. Проблема не напрямую связана с XML-RPC, но его можно использовать для включения атаки на ваш сайт.

Конечно вы можете защититься очень надёжный паролем и плагинами WordPress, обеспечивающими безопасность. Но лучшим режимом защиты будет просто его отключить.

Есть два основных слабых места XML-RPC, которые использовали в прошлом.

Первое – использует атаку путём прямого подбора пароля (brute force attacks) для получения доступа к вашему сайту. Атакующий попытается получить доступ к вашему сайту, используя xmlrpc.php подбирая различные комбинации имён пользователей и паролей. Они могут эффективно использовать одну команду для тестирования сотен различных паролей. Это позволяет им обходить инструменты безопасности, которые обычно обнаруживают и блокируют атаки прямого подбора.

Второе – перевод сайта в офлайн путём DDoS атаки. Хакеры будут использовать обратное уведомление в WordPress для отправки его тысячам сайтов одновременно. Этот функционал xmlrpc.php даёт хакерам почти бесконечное количество IP-адресов для распространения атаки DDoS.

Метод 1: отключение Xmlrpc.php при помощи плагина

Отключить XML-RPC на вашем сайте WordPress невероятно просто.

Перейдите в раздел Плагины › Добавить новый в вашей админ консоли WordPress. Найдите плагин Disable XML-RPC и установите его, он выглядит как на картинке ниже:

Плагин xml-rpc

Активируйте плагин и всё готово. Этот плагин автоматически вставит необходимый код для отключения XML-RPC.

Однако помните, что установленные плагины могут использовать части XML-RPC, и тогда его отключение может вызвать конфликт плагинов или отдельных их частей и вывод их из рабочего режима.

Если вы хотите только отключить отдельные элементы XML-RPC, но позволить другим плагинам и функциям работать, тогда обратитесь к таким плагинам:

    . Этот плагин остановить все XML-RPC атаки, но он позволить продолжить работу таких плагинов как Jetpack и другие автоматические инструменты и плагины, предоставляя им доступ к файлам xmlrpc.php. . Это позволяет вам сохранить контроль и использовать удалённо публикации.

Метод 2: отключение Xmlrpc.php вручную

Если вы не хотите использовать плагин и предпочитаете делать это вручную, следуйте этому подходу. Он остановит все входящие запросы xmlrpc.php до того, как он будет передан в WordPress.

Вставьте этот код в файл .htaccess:

Заключительные мысли

В целом, XML-RPC был добротным решением некоторых проблем, которые возникали из-за удаленной публикации на вашем сайте WordPress. Однако вместе с тем появились некоторые дыры в безопасности, которые оказались довольно опасными для некоторых владельцев сайтов на WordPress.

Чтобы ваш сайт оставался в безопасности, рекомендуется полностью отключить xmlrpc.php, если вам не нужны некоторые функции, необходимые для удаленной публикации и плагина Jetpack. Затем вы можете использовать обходные плагины, которые позволяют использовать эти функции, при этом исправляя дыры в безопасности.

Со временем мы можем ожидать, что функции XML-RPC станут интегрированными в новый WordPress API, который будет поддерживать удаленный доступ, не жертвуя безопасностью.

Вы заблокировали доступ к XML-RPC через плагин или вручную? Или возникли какие-либо проблемы с безопасностью из-за того, что он был прежде активным? Поделитесь своим опытом в комментариях ниже.

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

Протокол «XML-RPC» был разработан для стандартизации взаимодействия между различными системами, что означает, что приложения вне WordPress (например, другие платформы для ведения блогов и клиенты) могут взаимодействовать с ядром вашего WordPress сайта.

WordPress использует «XML-RPC» с момента его создания и он проделал очень полезную работу. Без него WordPress был бы изолирован от остального Интернета.

Однако у xmlrpc.php есть свои недостатки. Он способен открыть уязвимости вашего сайта WordPress, и теперь его заменил WordPress REST API, который намного лучше работает как связь между WordPress и другими приложениями.

В этом посте мы объясним, что такое xmlrpc.php в WordPress, почему желательно бы его отключить, и поможем определить, работает ли он на вашем сайте.

Содержание

Что такое xmlrpc.php в WordPress?

XML-RPC появился гораздо раньше чем сам WordPress: он присутствовал в программном обеспечении для ведения блогов «b2», одна из ветвей которого использовалась для создания WordPress в уже далёком 2003 году. Частично, код ПО «b2» хранится в файле с именем xmlrpc.php в корневом каталоге сайта. Да, он все еще существует, хотя «XML-RPC» в значительной степени устарел.

В ранних версиях WordPress «XML-RPC» был отключен по умолчанию. Но начиная с версии 3.5 он вернулся. ? Сделано это было для того, чтобы мобильное приложение WordPress (iOS и Android) могло взаимодействовать с вашим WordPress сайтом.

Если вы использовали мобильное приложение до версии 3.5, вы, возможно, помните, что вам нужно было отдельно включить «XML-RPC» на сайте, чтобы приложение могло публиковать контент. Это произошло потому, что в приложении не взаимодействовало напрямую с WordPress, а существовало отдельное ПО, связывающееся с вашим сайтом с помощью xmlrpc.php .

Стоит уточнить, что «XML-RPC» взаимодействовал не только с приложением, он также использовался для обеспечения связи между WordPress и другими платформами для ведения блогов, он подключал, так называемые «Pingbacks» (обратные ссылки), а также работал с плагином Jetpack.

Опираясь на то, что «REST API» заменил «XML-RPC», вам следует отключить xmlrpc.php на своем WordPress сайте. Давайте разбираться почему это нужно сделать.

Почему рекомендуется отключить xmlrpc.php?

Основная причина, по которой вы должны отключить xmlrpc.php на своем WordPress сайте, заключается в том, что он может открыть уязвимости и стать целью атак.

Теперь, когда «XML-RPC» больше не нужен для связи вашего сайта со сторонними ПО, нет причин держать протокол открытым. Было бы разумно сделать ваш сайт более безопасным, не так ли?

Если xmlrpc.php уязвим и больше не нужен, почему он не был полностью исключен из WordPress? ?

Хороший вопрос да?

Причина этого в том, что одной из ключевых особенностей WordPress всегда будет обратная совместимость. Если вы грамотно управляете своим сайтом, то вы знаете, что крайне важно поддерживать ядро WordPress в актуальном состоянии, а также любые плагины или темы.

Но всегда найдутся веб-мастера, которые не хотят или не могут периодически все обновлять, а если они используют версию, предшествующую появленению «REST API», им требуется доступ к xmlrpc.php .

Давайте рассмотрим конкретные уязвимости более подробно.

1. DDoS-атаки через пингбеки XML-RPC

Одной из функций, реализованных в xmlrpc.php , были пингбеки и трекбэки. Это уведомления, которые появляются в комментариях на вашем сайте, когда другой блог или сайт ссылается на ваш контент.

Эта связь стала возможной благодаря протоколу «XML-RPC», но ее заменил «REST API» (как вы уже усвоили).

Если на вашем сайте включен «XML-RPC», злоумышленних потенциально может организовать DDoS-атаку на сайт, используя xmlrpc.php для отправки большого количества пингбеков на ваш сайт за короткое время. Это может перегрузить ваш сервер и вывести его из строя.

2. Brute Force атаки через XML-RPC

Каждый раз, когда xmlrpc.php делает запрос, он отправляет имя пользователя и пароль для аутентификации. Это представляет собой серьезную угрозу безопасности а вот «REST API» этого не делает. Фактически, «REST API» использует метод «OAuth», который отправляет токены для аутентификации вместо имен пользователей или паролей.

Поскольку xmlrpc.php отправляет информацию аутентификации с каждым запросом, злоумышленники могут использовать ее, чтобы попытаться получить доступ к сайту. Подобная атака может позволить им вставить контент, удалить код или повредить базу данных.

Если злоумышленник отправляет на ваш сайт большое количество запросов, в каждом из которых содержится пара с именем пользователя и паролем, то есть вероятность, что в конечном итоге он ударит по правильному, получит доступ к сайту.

Вот почему, если вы используете последнюю версию WordPress, которая использует «REST API» для связи с внешними системами, вам следует отключить xmlrpc.php . В нём нет необходимости, а он может сделать ваш сайт уязвимым. ☠️

Работает ли xmlrpc.php на вашем WordPress сайте?

Первое, что вам нужно сделать, это определить, активен ли xmlrpc.php на вашем сайте WordPress.

Это непросто проверки наличия файла. Файл является частью каждой установки WordPress и будет присутствовать, даже если «XML-RPC» отключен.

Всегда делайте резервную копию своего сайта, прежде чем что-либо удалять. В нашем случае не удаляйте просто файл xmlrpc.php, потому что он сломает ваш сайт.

Чтобы проверить, активен ли xmlrpc.php на вашем WordPress сайте, используйте сервис проверки. Этот сервис автоматически проверит ваш сайт и сообщит, активен ли протокол или нет.

Проверяем используется ли xmlrpc.php в WordPress сайте

Проверяем используется ли xmlrpc.php в WordPress сайте

Отключённый xmlrpc.php на WordPress сайте

Итак, если вы запустите проверку и увидите, что xmlrpc.php все еще используется на вашем сайте, как вам его отключить?

Как отключить xmlrpc.php на своём WordPress сайте?

Допустим вы отправили сайт на проверку, как написано выше и получили вот такой результат:

Проверка успешна xmlrpc.php активен

Проверка успешна, xmlrpc.php активен

Ну что же, протокол активен, давайте отключать.

Самым простым способом будет установка и активация плагина Disable XML-RPC, не смущайтесь что плагин не обновлялся больше года. Обновлять там нечего, так как он содержит всего одну строчку кода:

Именно этот фильтр и отключает протокол «XML-RPC» на WordPress сайте. А если всё же не хочется использовать плагины, то достаточно вставить вышеупомянутый фильтр в файл functions.php вашей темы (желательно дочерней).

В качестве альтернативы можно отключить протокол через .htacess файл, добавив следующее условие:

В каких случаях стоит оставить xmlrpc.php?

В некоторых случаях xmlrpc.php может быть полезен и его не следует полностью отключать.

  • Вы не используете «REST API», но вам необходимо обмениваться данными между вашим WordPress сайтом и другими системами.
  • Нет возможности обновить ядро WordPress до версии 4.4 или выше.
  • Вы работаете с внешним приложением, которое не могут получить доступ к WordPrss «REST API», но хорошо работают с «XML-RPC».

XML-RPC когда-то был важной частью WordPress, но теперь протокол угрожает безопасности вашего WordPress сайта ?

Подведем итог

Протокол «XML-RPC» был разработан еще до создания WordPress как средство взаимодействия WordPress с внешними системами и приложениями. Ему присущи недостатки в плане безопасности, и он может сделать ваш сайт уязвимым для атак.

Начиная с версии 4.4 в WordPress ядро была интегрирована поддержка «REST API», что делает «XML-RPC» абсолютно не нужным. Если вы выполните описанные выше действия, отключив эту функцию, вы повысите безопасность своего сайта.

Если у вас есть вопросы – спрашивайте в комментариях и мы обязательно вам ответим.


В header.php шаблоне большинства тем WordPress есть важный хук wp_head. Этот необходимый хук позволяет функциям WordPress выводить содержимое в браузер в области ваших веб-страниц.

Например, в новых версиях WordPress WordPress wp_head() позволяет выводить следующие три строки в вашу тему :

Как вы можете видеть, добавлено множество материалов, включая ссылки на каналы, ссылки XML-RPC и WLW и несколько других элементов. Хотя есть много обсуждений со всеми этими включениями, здесь мы имеем дело прежде всего с ссылкой на xmlrpc.php файл. WordPress включает эту ссылку для интерфейса XML-RPC , который позволяет удаленным приложениям общаться и взаимодействовать с WordPress.

Что делает xmlrpc.php? Нужно ли мне это?

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

  • Постиинг непосредственно в ваш блог с помощью TextMate, Flock и других клиентов
  • Постиинг непосредственно в ваш блог с помощью Eudora, Thunderbird и других приложений
  • Получение pingback и trackbacks на ваш сайт из других блогов

Не все используют возможности удаленной публикации, доступные в WordPress, но я думаю, что многие блоги определенно используют протокол XML-RPC для функций pingback и trackback.

Предоставляет ли файл xmlrpc.php угрозу безопасности?

Некоторые из вас могут вспомнить риск безопасности, связанный со xmlrpc.php сценарием, в хорошие дни WordPress 2.1.2, посредством чего:

Эта уязвимость была незамедлительно устранена в версии 2.1.3, но вскоре после этого (в версии 2.3.1) была обнаружена еще одна проблема безопасности, когда была обнаружена утечка информации о реализации XML-RPC .

Хотя это было исправлено в версии 2.3.2, проблемы безопасности, связанные с протоколом XML-RPC , в конечном итоге заставили разработчиков WordPress отключить удаленный доступ по умолчанию в версии 2.6 . xmlrpc.php Файл все еще включен в документ (предположительно ради Pingbacks и трекбеков), но функциональность удаленного доступа не функционирует, пока явно не включен.

Советы по безопасности файла xmlrpc.php вашего сайта

Несмотря на то что, в прошлом были проблемы с безопасностью, xmlrpc.php и в будущем, возможно, возникнут новые проблемы. Чтобы быть в безопасности, вот несколько разных стратегий и советов, которые помогут обеспечить максимальную безопасность вашего блога.

Если вам функциональность xmlrpc.php не нужна, удалите его

Возможно, самым безопасным способом устранения потенциальных уязвимостей безопасности является просто удаление рассматриваемого сценария. Если вам не нужна дистанционная проводка, pingback или trackbacks, может быть проще всего просто удалить xmlrpc.php файл с вашего сервера. Вместо того, чтобы удалять его, вы можете просто переименовать его в нечто неописуемое. В любом случае, если скрипт недоступен для злоумышленника, это затрудняет его использование.

Обновление. Если вы удалите (или переименуете) xmlrpc.php файл из своей установки WordPress, вы также должны реализовать функцию, описанную в следующем разделе, чтобы избежать лавины из 404 ошибок (см. Этот комментарий для дальнейшего объяснения).

Удалите ссылки на xmlrpc.php и wlwmanifest.xml

В качестве альтернативы, если вам не нужны какие-либо функции удаленного доступа или pingback, вы можете просто удалить связанные заголовки ссылок, а не удалять любые основные файлы с вашего сервера. Это легко осуществить с помощью следующей функции, помещенной в файл активной темы functions.php:

Это предотвратит привязку этих двух файлов в заголовке, но сами файлы останутся доступными на вашем сервере. Определенно убедитесь, что по умолчанию отключена удаленная публикация, если вы реализуете этот метод.

Отключить функциональность удаленной публикации

Если вы не публикуете удаленно, но вы все равно хотите получать pingback и trackbacks, возьмите совет WordPress и просто оставьте функциональность удаленного доступа отключенной по умолчанию. Этот шаг по-настоящему кажется огромным способом помочь скрыть безопасность вашего блога. Файл будет по-прежнему доступен на вашем сервере, но злоумышленники смогут сделать с ним гораздо меньше.

Предотвращение сканирования вредоносных файлов xmlrpc.php

Для тех из вас, кто мудро следит за доступом к вашему серверу и журналам ошибок, вы, вероятно, видели недавний всплеск объема xmlrpc.php сканирования вредоносного каталога. По какой-то причине плохие парни внезапно очень заинтересовались в xmlrpc.php файлах и просматривают каждый каталог, который они могут получить, боты, пытаясь найти их. В последнее время я видел тонны этого вида деятельности:

Независимо от того, находят ли злоумышленники свою цель или нет, такое поведение разрушает системные ресурсы, увеличивает пропускную способность свиней и препятствует работе вашего сайта на максимальной мощности. Таким образом, чтобы предотвратить вредоносное поведение вашего сайта, я разработал следующее решение .htaccess :

Когда он помещается в файл .htaccess для доступа к веб-сайту для вашего сайта, эта простая директива перенаправляет все запросы на xmlrpc.php файл вашего блога в фактический файл. Я использую этот метод уже несколько недель на скоропортящейся прессе и из-за этого устранил тысячи неверно направленных запросов.

Оставьте файл xmlrpc.php, но запретите доступ к нему

И последнее, но не менее важное – это простой способ, позволяющий оставить файл на своем сервере, но запретить доступ к нему. Просто вставьте следующий код в свой корневой файл HTAccess и сделайте с ним:

Читайте также: