RSD ссылка xml-rpc в WordPress: зачем она нужна, и как удалить эту уязвимость

wordpress xml-rpc ссылка
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

XML-RPC: что это, и для чего данный функционал включили в WordPress

XML-RPC — это API для обмена данными между сайтом и внешними сервисами, а также приложениями. Для передачи данных и публикации таким способом записей в блоге используется формат XML. Этот формат является предшественником JSON.

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

В WordPress этот функционал включили не сразу, а только в версии 3.5. Это было сделано для синхронизации сайтов с мобильным приложением WordPress. Те пользователи CMS, которые использовали для создания контента свои мобильные устройства, не могли через них добавлять материалы на сайт. Поэтому им требовалась спецификация XML-RPC для взаимодействия со своим веб-проектом и публикации контента.

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

Нужен ли XML-RPC на современном сайте?

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

Почему лучше отключить xmlrpc php в WordPress?

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

Отключить функционал RSD стоит еще по одной причине. Все внешние подключения несут потенциальную опасность. Они предоставляют хакерам лазейки для взлома вашего ресурса.

К известным уязвимостям XML-RPC относят следующие:

DDoS-attack с использованием пингбеков. Современные хакеры успешно используют pingback-функцию, которая включена в xmlrpc.php для организации DDoS-атак на ресурсы WordPress. Злоумышленники, используя, например, exploit-скрипты на Python или другой специализированный софт, отправляют за короткий промежуток времени большое число пингбэков на сайт. Это приводит к тому, что сервер не справляется с нагрузкой и выдает ошибку 500.

Брутфорс-атаки через получение доступа. При HTTP-запросах через XML-RPC передаются авторизационные данные. Хакеры могут использовать эту возможность, чтобы получить доступ к вашему ресурсу. Если им удастся методом перебора подобрать рабочую пару логин-пароль, они смогут зайти в админку, украсть вашу базу клиентов, сделать спам-рассылку через сайт или вставить в контент огромное количество внешних ссылок.

Способы удалить XML-RPC на WordPress-проекте

Существует несколько способов закрыть эту «дыру» WordPress и защитить ресурс от взлома. Рассмотрим каждый из них.

С помощью плагинов WordPress

Remove WordPress Overhead — убираем XML-RPC и другие ненужные опции

Отключение через Remove WordPress Overhead

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

Также с его помощью вы можете убрать из ядра WP ненужные виджеты, такие как архивы, календарь, последние комментарии и др. Есть возможность отменить загрузку граватаров.

После установки и активации плагина в настройках вы сразу увидите ползунок для отключения RSD-ссылки. Он занимает самую первую строчку в списке доступных опций.

Disable XML-RPC-API — полное или частичное удаление XML-RPC

Отключение XML Disable XML-RPC-API

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

Также плагин позволяет оставить функционал XML-RPC включенным, но при этом позволяет управлять его использованием. Например, можно запретить подключаться с определенных IP-адресов. Или, наоборот, разрешить соединяться только с конкретных IP.

Плагин содержит еще несколько полезных опций, таких как блокировка JSON REST API, маскировка версии WordPress и др.

Remove & Disable XML-RPC Pingback — отключение пингбеков

Отключение пингбеков Remove & Disable XML-RPC Pingback

Remove & Disable XML-RPC Pingback убирает возможность для хакеров атаковать ваш ВордПресс-сайт с помощью пингбеков. Для этого плагин отключает функционал XML-RPC. Все происходит автоматически после установки и активации модуля на веб-сайте.

Модуль не добавляет никаких новых разделов меню в консоли и в настройке не нуждается. Распространятся бесплатно.

Clearfy PRO — премиальное и самое безопасное решение

Модуль Clearfy PRO

Легкий способ отключить XML-RPC и другой лишний функционал из WordPress предоставляет плагин Clearfy Pro.

Чтобы убрать ссылку RSD, нужно сделать следующее:

  1. Зайти в настройки плагина в консоли WP, затем на вкладку «Код».
  2. Прокрутить страницу до пункта с отключением ссылки RSD, а затем передвинуть ползунок, который находится напротив этого пункта, вправо.

Настройка RSD в Clearfy Pro

  1. Проскроллить в самый низ и сохранить настройки.
  2. Проверить код страницы. Если ссылка не пропала, то это означает, что она прописана в файле header.php активной темы WordPress, и вам придется удалить ее оттуда вручную.

После того, как вы избавитесь от RSD-ссылки, не спешите покидать вкладку с настройками Clearfy PRO. Рекомендую сразу отключить другие ненужные опции, вшитые в ядро WordPress:

  • JSON REST API. Аналогичная ссылка в секции head, которая ведет на объемный файл и тормозит загрузку сайта.
  • Смайлы Emoji. В WP по умолчанию включена замена символов emoji для старых браузеров, которые их не поддерживают. Все современные браузеры и операционные системы, например Windows, отлично отображают эти смайлики, поэтому данный функционал можно отключить.
  • Файл jquery-migrate. Подключение этого файла вы можете обнаружить в секции head своего сайта, если у вас одна из предыдущих версий WordPress. Скрипт jquery-migrate предназначен для устранения проблем совместимости со старыми версиями jQuery. Если вы регулярно обновляете плагины, то можете смело отключать эту ссылку.
  • Стили последних комментариев и другой мусорный код. В секции head включены стили .recentcomments, которые невозможно переопределить. Плагин позволяет отменить их, чтобы вы могли стилизовать блок последних комментариев в своем шаблоне. Остальные опции в разделе «Код» плагина Clearfy Pro позволят справиться с кучей других мелких задач по очистке кода.

Скидка 15% на Clearfy Pro

Программный способ с внесением кода в functions php

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

remove_action( 'wp_head', 'rsd_link' );

Не забудьте сделать резервную копию сайта перед тем, как править код.

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

Отключение XML-RPC в файле .htaccess

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

Скачайте этот файл к себе на диск, отредактируйте и загрузите обратно на сервер. Следующая директива отключит XML-RPC на WordPress:

RewriteRule ^xmlrpc\.php - [NC,F]

Если не сработает, попробуйте такой вариант:

<Files xmlrpc.php>
Require all denied
</Files>

Как проверить, что удаление XML-RPC прошло успешно

Есть несколько способов проверить, работает ли XML-RPC на ресурсе после отключения.

Рекомендую проверить сразу несколькими способами. Простое удаление rel link не уберет полностью функционал из WordPress, так как он вшит в ядро.

  • 1 способ. Добавьте к названию веб-сайта /xmlrpc.php и проследуйте по этой ссылке. Если ссылка работает, вы увидите надпись, оповещающую о том, что сайт принимает POST-запросы.

Проверка отключения

  • 2 способ. Воспользуйтесь специальными онлайн-валидаторами для WordPress, которые предназначены для проверки XML-RPC enabled.
  • 3 способ. Протестируйте соединение с помощью приложений или сервисов, которые могут подключаться к ресурсам WordPress через XML-RPC.

Ситуации, когда RSD-ссылку лучше не удалять

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

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

Еще вы задумаетесь о том, как включить обратно XML-RPC, если обнаружите, что после его отключения какой-либо плагин перестал работать. Это будет означать, что разработчики модуля используют устаревшую спецификацию для обмена данными с внешним сервисом. И это на самом деле повод задуматься, а нужен ли вообще такой плагин и не стоит ли поискать ему современную замену.

Плагин Clearfy Pro — лучший инструмент от WPShop, который позволяет избавиться от всего лишнего, что находится в секции head на WordPress-сайтах. С его помощью эту рутинную задачу можно сделать за несколько минут вместо долгих поисков отдельных решений под каждую задачу.

Промокод на Clearfy Pro

Создай свой первый сайт на WordPress

Александр

В рамках блога стремлюсь доступно передавать многолетний опыт по созданию, технической поддержке, безопасности и SEO-оптимизации WordPress-сайтов.

Оцените автора
Добавить комментарий