15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
01.11.2024

Что такое xmlrpc.php в WordPress и как его отключить (полное руководство 2024)

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

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

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

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

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

  • Удаленную публикацию контента — Клиенты блогов, такие как Windows Live Writer или MarsEdit, могли публиковать статьи непосредственно на ваш сайт.
  • Управление мобильными приложениями — Официальное мобильное приложение WordPress исторически полагалось на XML-RPC для управления постами, страницами и комментариями.
  • Обратные ссылки и пингбеки — Протокол обрабатывает уведомления между сайтами, оповещая другие блоги, когда вы ссылаетесь на их контент.
  • Интеграции третьих сторон — Сервисы, такие как IFTTT, Zapier (в старых конфигурациях) и различные плагины, использовали XML-RPC для программного взаимодействия с WordPress.

Хотя эти функции были действительно полезны в начале 2010-х годов, WordPress с тех пор представил REST API, который обеспечивает более безопасный, современный и гибкий способ достижения тех же результатов. В результате xmlrpc.php теперь в значительной степени устарел — но он остается активным по умолчанию на каждой установке WordPress.

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

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

1. Атаки усиления перебора

Это наиболее опасная и широко эксплуатируемая угроза. Стандартные атаки перебора против страницы входа WordPress (wp-login.php) ограничены одной попыткой учетных данных на один HTTP-запрос. XML-RPC кардинально меняет это.

Метод system.multicall в XML-RPC позволяет злоумышленнику объединить сотни или даже тысячи комбинаций имени пользователя/пароля в один HTTP-запрос. Это означает:

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

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

2. Усиление DDoS через пингбеки

Злоумышленники могут использовать функцию пингбека в xmlrpc.php, чтобы превратить ваш сайт WordPress в невольного участника атаки распределенного отказа в обслуживании (DDoS). Отправив специально созданный запрос пингбека, злоумышленник может указать вашему серверу отправить HTTP-запросы на целевой URL — фактически используя ресурсы вашего сервера и репутацию IP против третьей стороны.

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

3. Истощение ресурсов сервера

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

4. Ненужное раскрытие

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

Вам действительно нужен xmlrpc.php?

Перед отключением спросите себя:

Вариант использованияВсе еще нужен XML-RPC?
Мобильное приложение WordPress (современное)❌ Нет — использует REST API
Плагин Jetpack⚠️ Частично — проверьте документацию Jetpack
WooCommerce❌ Нет
Интеграции IFTTT / Zapier❌ Нет — используйте REST API или webhooks
Windows Live Writer / MarsEdit✅ Да — устаревшие клиенты
Пингбеки / Обратные ссылки❌ Нет — можно отключить отдельно

Для подавляющего большинства владельцев сайтов WordPress ответ таков: вам это не нужно. Отключите это.

Как отключить xmlrpc.php в WordPress: 3 метода

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

Метод 1: Используйте плагин безопасности WordPress (самый простой)

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

Рекомендуемые плагины:

  • Wordfence Security — Комплексный брандмауэр и сканер вредоносного ПО с блокировкой XML-RPC.
  • iThemes Security (теперь Solid Security) — Выделенный переключатель для отключения XML-RPC.
  • Disable XML-RPC — Легкий плагин с одной целью, который делает именно то, что говорит.

Пошаговые инструкции:

  1. Войдите в панель управления WordPress.
  2. Перейдите в Плагины → Добавить новый.
  3. Найдите выбранный плагин (например, “Disable XML-RPC”) и нажмите Установить, затем Активировать.
  4. Перейдите на страницу настроек плагина. Для специализированных плагинов безопасности, таких как Wordfence или iThemes Security, найдите раздел с названием XML-RPC или WordPress Tweaks.
  5. Включите опцию отключить XML-RPC или блокировать запросы XML-RPC.
  6. Сохраните изменения.

Преимущества: Просто, обратимо, редактирование файлов не требуется.

Недостатки: Добавляет зависимость плагина; файл все еще существует на сервере (запросы блокируются на уровне приложения, а не на уровне сервера).

Метод 2: Блокировка xmlrpc.php через .htaccess (рекомендуется для серверов Apache)

Для сред хостинга на основе Apache редактирование файла .htaccess блокирует запросы на уровне веб-сервера — до того, как WordPress даже загружается. Это более эффективно и обеспечивает более сильную защиту, чем плагин один.

Пошаговые инструкции:

  1. Получите доступ к файлам вашего сайта через FTP (используя FileZilla или аналогичное) или через Файловый менеджер панели управления хостинга.
  2. Перейдите в корневой каталог WordPress — это обычно public_html или www.
  3. Найдите файл .htaccess. Если вы его не видите, включите скрытые файлы в клиенте FTP (в FileZilla: Server → Force Showing Hidden Files) или в настройках файлового менеджера.
  4. Откройте .htaccess для редактирования и добавьте следующий блок в конец файла:
# Block WordPress xmlrpc.php
<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>
  1. Сохраните файл и закройте редактор.

Чтобы проверить, работает ли это, посетите https://yourdomain.com/xmlrpc.php в браузере. Вы должны получить ошибку 403 Forbidden вместо стандартного ответа XML-RPC.

Преимущества: Блокировка на уровне сервера более эффективна; снижает нагрузку на сервер; плагин не требуется.

Недостатки: Требует доступа к файлам; неправильное редактирование .htaccess может временно сломать ваш сайт (всегда сохраняйте резервную копию).

> Совет профессионала: Если ваш хостинг использует Nginx вместо Apache, добавьте следующее в конфигурацию блока сервера Nginx:

>

> “`nginx

> location = /xmlrpc.php {

> deny all;

> access_log off;

> log_not_found off;

> }

> “`

Метод 3: Отключение через functions.php (фильтр-крючок WordPress)

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

Пошаговые инструкции:

Вариант A — Через редактор тем (быстро, но не рекомендуется для production):

  1. В панели управления WordPress перейдите в Внешний вид → Редактор тем.
  2. Выберите functions.php из списка файлов справа.
  3. Добавьте следующий код в конец файла:
// Disable XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );
  1. Нажмите Обновить файл для сохранения.

Вариант B — Через пользовательский плагин (рекомендуется):

Вместо редактирования functions.php вашей темы (который перезаписывается при обновлении темы), создайте простой пользовательский плагин:

  1. Используя FTP или файловый менеджер, перейдите в wp-content/plugins/.
  2. Создайте новую папку с названием disable-xmlrpc.
  3. Внутри этой папки создайте файл с названием disable-xmlrpc.php со следующим содержимым:
<?php
/**
 * Plugin Name: Disable XML-RPC
 * Description: Disables XML-RPC functionality for improved security.
 * Version: 1.0
 * Author: Your Name
 */

add_filter( 'xmlrpc_enabled', '__return_false' );
  1. Перейдите в Плагины → Установленные плагины в панели управления и активируйте Disable XML-RPC.

Преимущества: Чистое, независимое от темы (при использовании метода пользовательского плагина); легко отменить.

Недостатки: Только на уровне приложения — файл все еще существует и может получать запросы (хотя они будут отклонены); не снижает нагрузку на сервер так эффективно, как блокировка .htaccess.

Объединение методов для максимальной безопасности

Для наиболее сильной защиты объедините метод 2 (.htaccess) с методом 3 (фильтр-крючок):

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

Этот многоуровневый подход следует принципу безопасности защита в глубину — несколько независимых средств управления, защищающих один и тот же актив.

Как проверить, что xmlrpc.php успешно отключен

После применения выбранного метода подтвердите, что это работает:

  1. Тест браузера: Посетите https://yourdomain.com/xmlrpc.php. Успешная блокировка показывает ошибку 403 Forbidden или 404 Not Found.
  2. Онлайн-проверка XML-RPC: Используйте инструмент, такой как xmlrpc.eritreo.it, чтобы проверить, отвечает ли конечная точка XML-RPC вашего сайта.
  3. Журналы сервера: Проверьте журналы доступа на наличие оставшихся запросов к xmlrpc.php — внезапное падение подтверждает, что блокировка работает.

Выбор правильного хостинга для безопасности WordPress

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

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

  • VPS хостинг — Полный доступ root позволяет вам реализовать конфигурации безопасности на уровне сервера, включая пользовательские правила Nginx или Apache для блокировки xmlrpc.php на уровне инфраструктуры. Идеально для разработчиков и растущих сайтов, которым нужен детальный контроль.
  • Общий веб-хостинг — Экономичная отправная точка для сайтов WordPress с управляемыми конфигурациями безопасности и легким доступом к редактированию .htaccess через панель управления.
  • VPS с cPanel — Объединяет мощь виртуального частного сервера со знакомым интерфейсом cPanel, что упрощает управление файлами .htaccess, SSL-сертификатами и параметрами безопасности без опыта командной строки.
  • SSL-сертификаты — Шифрование вашего сайта с помощью HTTPS — это неоспоримая основа безопасности. SSL-сертификат гарантирует, что даже если запросы XML-RPC сделаны, учетные данные и передаваемые данные зашиф
15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать