Как отключить XML-RPC в WordPress?

Опубликовано: 2022-09-19

Вы ищете файл xmlrpc.php и как его отключить в WordPress? В этой статье объясняется, что такое xmlrpc.php и как его отключить.

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

С момента своего появления эта спецификация имела большое значение для сообщества WordPress. Без него WordPress был бы изолирован от остального Интернета.

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

Цель этой статьи — объяснить, что такое xmlrpc.php, почему его следует отключить и как его отключить.

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

Что такое файл xmlrpc.php?

Цель этого раздела — ответить на вопрос Что такое XML-RPC PHP? Спецификация XML-RPC может использоваться для связи между WordPress и другими системами.

Используя HTTP в качестве транспортного протокола и XML в качестве протокола кодирования, XML-RPC может стандартизировать протоколы, используемые в этих коммуникациях.

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

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

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

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

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

Поскольку REST API теперь интегрирован в ядро ​​WordPress, мы больше не используем файл xmlrpc.php. Вместо использования этого файла теперь вы можете взаимодействовать с мобильным приложением WordPress, настольными клиентами, плагином Jetpack и другими системами и службами с помощью REST API.

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

Почему вы должны отключить XML-RPC?

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

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

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

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

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

Как проверить, включен ли XML-RPC?

Щелкните следующую ссылку для доступа к веб-сайту: Служба проверки XML-RPC WordPress.

После того, как вы ввели свое доменное имя, нажмите кнопку «Проверить».

Убедитесь, что xmlrpc включен в WordPress

Если тест прошел успешно, теперь будет включен XML-RPC, который следует немедленно отключить.

Отключить XMLRPC с помощью плагинов WordPress

По разным причинам владельцы сайтов могут захотеть отключить функциональность XMLRPC. Для этого вы можете использовать различные плагины, такие как Disable XML-RPC.

Отключите XMLRPC с помощью подключаемого модуля Disable XML-RPC.

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

1. Нажмите «Плагины», а затем «Добавить новый».

2. Введите «Отключить XML-RPC» в поле поиска. После этого установите плагин Disable XML-RPC.

Установите новый плагин в WordPress

3. Активируйте плагин, и вы готовы к работе. Затем XML-RPC отключается.

Установить плагин Отключить CML-RPC

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

Настройка активации XML-RPC и REST API с помощью подключаемого модуля

Плагин REST XML-RPC Data Checker позволяет более точно настроить REST API и xmlrpc.php на вашем веб-сайте.

После того, как вы установили и активировали плагин, перейдите на вкладку XML-RPC после нажатия на вкладку REST XML-RPC Data Checker в настройках.

С помощью плагина вы можете точно указать, какие функции xmlrpc.php включены на вашем сайте. Также возможно полностью отключить его. В плагине также есть вкладка, которая позволяет вам управлять REST API, если вы решите это сделать.

Отключить XMLRPC без плагина

Если вы предпочитаете не добавлять еще один плагин на свой веб-сайт, вы можете отключить xmlrpc.php с помощью фильтра или файла .htaccess. Рассмотрим оба варианта вместе.

Отключить xmlrpc.php через фильтр

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

 add_filter( 'xmlrpc_enabled', '__return_false' );

Функцию можно добавить в файл functions. Файл .htaccess также можно редактировать с помощью cPanel или FTP, в зависимости от того, подключены ли вы к хостинг-провайдеру с помощью Apache.

Функция WordPress __return_false возвращает логическое ложное условие. Этот фильтр блокирует только те операции, которые требуют авторизованного пользователя.

Его необходимо отменить для всех методов, чтобы отключить все операции сервера XMLRPC. Для этого вам нужно подключиться к фильтру xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

Файл xmlrpc.php создает объект класса wp_xmlrpc_server при выполнении запроса. В папке wp-includes находится файл класса, содержащий свойство, называемое методами.

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

Функция возвращается с сообщением об ошибке, если она не включена в этот массив. Таким образом, если вы очистите массив, вы уверены, что не сможете использовать какие-либо функции.

Отключить XML-RPC с помощью .htaccess

Отключение XML-RPC с помощью .htaccess включает несколько простых шагов. Вот как вы можете отключить xmlrpc.php .htaccess:

  • Вы можете использовать FTP или файловый менеджер для перехода в корневой каталог вашего сайта.
  • Вы должны открыть файл .htaccess.
  • Вам нужно будет добавить следующий код в файл .htaccess:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx можно заменить IP-адресом, которому вы хотите предоставить доступ к xmlrpc.php. Если вы хотите полностью удалить xmlrpc.php из WordPress, вы можете удалить эту строку.

Отключить XMLRPC в Apache/Nginx

Отключение XMLRPC в Apache/Nginx также может быть простым процессом. Следующий код должен быть добавлен в файл конфигурации Apache, чтобы отключить xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

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

 server { ----------- location /xmlrpc.php { deny all; } }

Как искать и находить атаки XML-RPC в разных дистрибутивах Linux?

Если вы ищете атаки XML-RPC в разных дистрибутивах Linux, вы можете использовать следующие команды, чтобы остановить атаки xmlrpc.php:

Сервер CentOS с установленным Apache:
 # grep xmlrpc /var/logs/httpd/access.log
С Apache на Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
Для серверов на базе Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
Для серверов на базе cPanel:
 # grep xmlrpc /home/username/logs/access.log

Вы получите следующий вывод, если предыдущие команды были выполнены на сайте WordPress, который находится под атакой:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Когда оставить файл XML-RPC.php включенным

Есть несколько ситуаций, в которых было бы полезно включить XML-RPC, и вот некоторые из них:

  • Если REST API недоступен, когда у вас есть старый веб-сайт, который по какой-либо причине не может быть обновлен до версии 4.4 или выше.
  • Программа не может получить доступ к REST API на веб-сайте, который вы используете для связи с ним.
  • Для интеграции некоторых сторонних приложений, для работы которых требуется XML-RPC.

Однако следует отметить, что ни одна из вышеперечисленных критических замечаний не является достаточным основанием для продолжения использования эксплойта XML-RPC и xmlrpc.php.

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

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

Тестирование функциональности XML-RPC в WordPress

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

Для этого вы можете загрузить мобильное приложение WordPress на свой телефон. Доступны версии этого приложения для Android и iPhone. После установки приложения на свое устройство нажмите «Введите существующий адрес сайта», чтобы начать его использовать.

Все готово, если вы видите сообщение об ошибке, что службы XML-RPC отключены на этом сайте. Это запрещенное сообщение WordPress xmlrpc.php 403.

Вывод

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

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