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

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

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

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

  • Удаленная публикация контента через мобильное приложение WordPress или внешние инструменты для ведения блогов

  • Trackbacks и pingbacks

  • Jetpack и другие функции плагинов, которые полагаются на удаленный доступ

В ранних версиях WordPress (до появления REST API) xmlrpc.php был необходим для выполнения удаленных операций. Однако с тех пор REST API стал современной и более безопасной альтернативой.

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

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

  • Атаки грубой силы: Хакеры могут использовать его для перебора тысяч комбинаций имени пользователя и пароля в одном запросе.

  • DDoS-атаки: Файл может быть использован для отправки пингбэков с вашего сайта на другие, участвуя в распределенных атаках типа “отказ в обслуживании”.

  • Уязвимости удаленного выполнения кода: Старые или плохо настроенные версии WordPress могут быть подвержены риску.

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

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

1. С помощью плагина

Самый простой способ отключить xmlrpc.php – это использовать плагин безопасности, например:

  • Wordfence Security

  • Отключить XML-RPC

  • All In One WP Security & Firewall

Эти плагины позволяют одним щелчком мыши отключить доступ к файлу.

2. Отключение через .htaccess

Если вы используете сервер Apache, вы можете заблокировать доступ к xmlrpc.php, добавив это правило в ваш файл .htaccess в корневой директории:

.
Запретить, разрешить
Запретить для всех

3. Использование Nginx

Для серверов Nginx добавьте следующее в файл конфигурации:

location = /xmlrpc.php {
запретить все;
access_log off;
log_not_found off;
}

4. Отключение через functions.php (ограничено)

Вы также можете отключить некоторые методы xmlrpc, добавив следующее в functions.php вашей темы:

add_filter('xmlrpc_enabled', '__return_false');

Примечание: Это не предотвращает доступ к файлу, а только отключает функциональность.

Когда следует держать его включенным?

Вам может понадобиться держать xmlrpc.php включенным, если:

  • Вы используете мобильное приложение WordPress для публикации

  • Вы полагаетесь на Jetpack или другие инструменты удаленной публикации

  • Ваш сайт интегрируется с устаревшими системами или приложениями, которым требуется XML-RPC

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

Дополнительные советы

  • Сначала создайте резервную копию: Всегда делайте резервную копию сайта перед изменением файлов типа .htaccess или functions.php

  • Тестирование функциональности: После отключения протестируйте такие функции, как Jetpack или мобильная публикация, чтобы избежать сбоев в работе

  • Отслеживайте атаки: Используйте такие плагины, как Wordfence, чтобы отслеживать неудачные попытки входа, нацеленные на xmlrpc.php

  • Альтернатива REST API: Перейдите на WordPress REST API для современных интеграций, уменьшив зависимость от xmlrpc.php

Заключение

Отключение xmlrpc.php – разумный шаг для защиты вашего WordPress-сайта, если вам не нужны его функции удаленного доступа. Используя плагины, .htaccess, правила Nginx или functions.php, вы можете блокировать уязвимости, сохраняя сайт быстрым и надежным. Приведенные примеры и советы позволят вам уверенно внедрить и протестировать эти изменения, повысив безопасность без ущерба для функциональности.