- Руководство по xmlrpc.php в WordPress (что это такое, риски и как отключить)
- Что такое xmlrpc.php в WordPress?
- Почему рекомендуется отключить xmlrpc.php?
- 1. DDoS-атаки через пингбеки XML-RPC
- 2. Brute Force атаки через XML-RPC
- Работает ли xmlrpc.php на вашем WordPress сайте?
- Как отключить xmlrpc.php на своём WordPress сайте?
- В каких случаях стоит оставить xmlrpc.php?
- Подведем итог
- Что такое Xmlrpc.php для WordPress и как его отключить
- Зачем отключать xmlrpc.php
- Как отключить, или удалить XML-RPC, и другой ненужный мусор в WordPress
- Что такое XML-RPC?
- Для чего удалять XML-RPC?
- Удаление XML-RPC с помощью плагина
Руководство по xmlrpc.php в WordPress (что это такое, риски и как отключить)
Протокол «XML-RPC» был разработан для стандартизации взаимодействия между различными системами, что означает, что приложения вне WordPress (например, другие платформы для ведения блогов и клиенты) могут взаимодействовать с ядром вашего WordPress сайта.
WordPress использует «XML-RPC» с момента его создания и он проделал очень полезную работу. Без него WordPress был бы изолирован от остального Интернета.
Однако у xmlrpc.php есть свои недостатки. Он способен открыть уязвимости вашего сайта WordPress, и теперь его заменил WordPress REST API, который намного лучше работает как связь между WordPress и другими приложениями.
В этом посте мы объясним, что такое xmlrpc.php в WordPress, почему желательно бы его отключить, и поможем определить, работает ли он на вашем сайте.
Что такое xmlrpc.php в WordPress?
Итак, как вы уже знаете, «XML-RPC» – это протокол, который обеспечивает связь между WordPress и другими системами. Добились этого путем стандартизации этих коммуникаций с использованием «HTTP» в качестве транспортного механизма и «XML» в качестве механизма кодирования.
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» и интеграцией его в ядро WordPress, файл xmlrpc.php больше не используется для этого типа взаимодействий. Сейчас «REST API» используется для связи с мобильным приложением WordPress, с настольными клиентами, с другими платформами для ведения блогов, с WordPress.com (для плагина Jetpack) и с другими системами. Диапазон систем, с которыми может взаимодействовать «REST API», намного больше, чем в xmlrpc.php . Кроме того, «REST API» даёт гораздо больше гибкости для разработчиков.
Опираясь на то, что «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 сайте, используйте сервис проверки. Этот сервис автоматически проверит ваш сайт и сообщит, активен ли протокол или нет.
Вот результат, который вы получите если проверите wordpresslab.ru через этот сервис. «XML-RPC» отключен!
Итак, если вы запустите проверку и увидите, что xmlrpc.php все еще используется на вашем сайте, как вам его отключить?
Как отключить xmlrpc.php на своём WordPress сайте?
Допустим вы отправили сайт на проверку, как написано выше и получили вот такой результат:
Ну что же, протокол активен, давайте отключать.
Самым простым способом будет установка и активация плагина Disable XML-RPC, не смущайтесь что плагин не обновлялся больше года. Обновлять там нечего, так как он содержит всего одну строчку кода:
add_filter( 'xmlrpc_enabled', '__return_false' );
Именно этот фильтр и отключает протокол «XML-RPC» на WordPress сайте. А если всё же не хочется использовать плагины, то достаточно вставить вышеупомянутый фильтр в файл functions.php вашей темы (желательно дочерней).
В качестве альтернативы можно отключить протокол через .htacess файл, добавив следующее условие:
Order Allow,Deny Deny from all
В каких случаях стоит оставить xmlrpc.php?
В некоторых случаях xmlrpc.php может быть полезен и его не следует полностью отключать.
- Вы не используете «REST API», но вам необходимо обмениваться данными между вашим WordPress сайтом и другими системами.
- Нет возможности обновить ядро WordPress до версии 4.4 или выше.
- Вы работаете с внешним приложением, которое не могут получить доступ к WordPrss «REST API», но хорошо работают с «XML-RPC».
Это всё! Если ни одна из этих причин не является особенно веской для вас – смело отключайте.
Единственная причина, по которой этот файл все еще находится в WordPress – это обратная совместимость. Для всех, кто хочет поддерживать свои сайты в актуальном состоянии и работает с новейшими технологиями, отключение xmlrpc.php – лучший вариант.
XML-RPC когда-то был важной частью WordPress, но теперь протокол угрожает безопасности вашего WordPress сайта ?
Подведем итог
Протокол «XML-RPC» был разработан еще до создания WordPress как средство взаимодействия WordPress с внешними системами и приложениями. Ему присущи недостатки в плане безопасности, и он может сделать ваш сайт уязвимым для атак.
Начиная с версии 4.4 в WordPress ядро была интегрирована поддержка «REST API», что делает «XML-RPC» абсолютно не нужным. Если вы выполните описанные выше действия, отключив эту функцию, вы повысите безопасность своего сайта.
Если у вас есть вопросы – спрашивайте в комментариях и мы обязательно вам ответим.
Что такое Xmlrpc.php для WordPress и как его отключить
Xmlrpc.php в WordPress используется для удаленного доступа к вашему сайту, через сторонние приложения. Данный инструмент появился, когда WordPress только зарождался и скорость интернета не позволяла быстро создавать и публиковать записи на сайт. Существовал офлайн-клиент, в котором администратор создавал и редактировал записи, а затем через xmlrpc.php записи публиковались на сайт.
В 2008 году было выпущено приложение WordPress для iPhone и поддержка XML-RPC была включена по умолчанию, без возможности отключить.
Зачем отключать xmlrpc.php
Одна из важных причин, из-за которой стоит отключить XML-RPC — это угроза безопасности вашего сайта. Злоумышленники часто используют эту лазейку для взлома пароля от админки вашего сайта, а также для DDoS-атаки.
Часто причиной нагрузки на CPU в хостинг панели является нежелательные подключение через XML-RPC, из-за чего работа вашего хостинга может быть приостановлена.
Проверить можно с помощью XML-RPC Validator. Для этого:
Если вы получили сообщение «Congratulation! Your site passed the first check», то xmlrpc.php на вашем сайте включен. Если ответ «Failed to check your site at http://domain.ru because of the following error», то xmlrpc.php отключен.
Чтобы отключить XML-RPC выберите нужную инструкцию:
Чтобы отключить XML-RPC, достаточно установить плагин Disable XML-RPC и активировать его. Он автоматически укажет необходимые настройки и закроет доступ через xmlrpc.php.
Установить плагин можно через админку WordPress, в разделе Плагины.
Если вы хотите сделать все вручную без установки плагина:
order deny,allow deny from all
Как отключить, или удалить XML-RPC, и другой ненужный мусор в WordPress
Привет всем! Это уже третья статья, где я рассказываю, как что-то надо отключить, или удалить на сайте WordPress. Но чего только не сделаешь ради того, чтобы сайт загружался немного быстрее. Вот и в этой статье, я предлагаю несколько способов избавиться от ненужного кода.
Что такое XML-RPC?
Разработка XML-RPC началась еще в 1998 году, компанией «UserLand Software».- Это библиотека, которая позволяет ускорить разработку веб-сервисов, Через некоторое время этот функционал был отвергнут, и появилась система SOAP от Microsoft. Но, не смотря на это, XML-RPC существует по сегодняшний день и популярность его даже возрастает. С помощью XML-RPC можно удаленно работать с WordPress и управлять его настройками.
Для чего удалять XML-RPC?
Если Вы не собираетесь удаленно управлять своим сайтом, тогда от этого функционала можно отказаться. Известно, что подключенные скрипты и различные библиотеки к сайту, затормаживают его работу и создают дополнительные запросы к базе данных. Плюс ко всему, файл xmlrpc.php , который находится в корне сайта, индексируется поисковиками, но только в том случае, если в файле robots.txt не прописана директива Disallow: /xmlrpc.php
Удаление XML-RPC с помощью плагина
Для отключения XML-RPC на WordPress, можно воспользоваться плагином Disable XML-RPC Pingback. Этот плагин не отключает полностью XML-RPC, а только некоторые его функции, чтобы JetPack и другие похожие плагины могли правильно работать.
Отключаем XML-RPS с помощью кода
Если Вы не хотите устанавливать на свой сайт дополнительный плагин, тогда можно установить в файл functions.php код ниже: