Рубрики
WordPress

Уязвимость xmlrpc.php в WordPress: как ее убрать?

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

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

XML-RPC — это удалённый API-протокол, который позволяет взаимодействовать с сайтом через HTTP, отправляя запросы в формате XML.

Файл xmlrpc.php — это точка входа (endpoint), через которую внешние приложения могут:

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

Где используется

В контексте WordPress:

  • мобильные приложения WordPress
  • интеграции с внешними сервисами
  • инструменты автоматизации публикаций
  • пинг-сервисы (уведомление поисковиков о новых постах)

Проблемы безопасности xmlrpc.php

xmlrpc.php часто становится объектом атак:

  1. Brute-force атаки
    • можно проверять много логинов/паролей в одном запросе (system.multicall)
  2. DDoS (Pingback атаки)
    • злоумышленники используют сайт как прокси для атак на другие ресурсы
  3. Скрытые атаки
    • сложнее отследить, чем обычный wp-login.php

Нужно ли отключать xmlrpc.php?

Зависит от ситуации:

Можно отключить, если:

  • не используешь мобильное приложение WordPress
  • нет внешних интеграций
  • сайт простой (блог, лендинг)

Не стоит отключать, если:

  • есть API-интеграции
  • используешь удалённую публикацию

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

Обычно:

xmlrpc.php = API-интерфейс WordPress для удалённого управления сайтом, но при этом потенциальная точка уязвимости, если не используется.

Безопасные способы отключения xmlrpc.php без поломки сайта

Отключать xmlrpc.php лучше не “в лоб” (удалением файла), а аккуратно — с возможностью контроля и отката. Ниже — проверенные и безопасные варианты.

✅ Способ 1 (рекомендуется): через плагин

Самый безопасный и обратимый вариант в WordPress.

Вариант A: Disable XML-RPC
  • Установи плагин Disable XML-RPC
  • Активируй — и всё, доступ будет закрыт
Вариант B: Wordfence / iThemes Security

Если уже используешь защитный плагин:

  • включи опцию Disable XML-RPC или Block XML-RPC

✔ Плюсы:

  • не ломает сайт
  • легко включить обратно
  • не требует доступа к серверу

✅ Способ 2: через .htaccess (Apache)

Подходит, если у тебя Apache.

Добавь в .htaccess:

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

✔ Что происходит:

  • сервер блокирует доступ к xmlrpc.php
  • сам файл остаётся → WordPress не ломается

✅ Способ 3: через Nginx

Если у тебя Nginx:

location = /xmlrpc.php {
    deny all;
}

После — перезапусти сервер.

✅ Способ 4: отключить частично (самый гибкий)

Если хочешь оставить часть функционала (например, Jetpack), лучше отключить только опасные методы.

Добавь в functions.php темы:

add_filter('xmlrpc_enabled', '__return_false');

ИЛИ более точечно (убираем multicall — основной источник brute-force):

add_filter('xmlrpc_methods', function($methods) {
    unset($methods['system.multicall']);
    return $methods;
});

✔ Это снижает риск атак, но не ломает интеграции

⚠️ Важная проверка после отключения

После любого способа проверь:

  • мобильное приложение WordPress (если используешь)
  • плагины типа Jetpack
  • REST API (обычно не страдает)
  • авторизацию и публикации

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *