Сегодня в статье поговорим о WordPress и его функционале. Начиная с первых версий у WordPress есть функция удаленного управления сайтом с помощью специальных приложений.
XML Remote Procedure Call — (Вызов удаленной процедуры) используется для подключения к сайту через мобильное приложение WordPress (android, ios).
Эта же функция используется для трекбэков и пингбэков (оповещает владельца сайта о том, что где-то оставили ссылку на его сайт), и используется плагином Jetpack.
История XML-RPC
Когда к интернету подключались через модем и скорость подключения была низкой, публиковать страницы было трудно. Чтобы обойти эту проблему, решили создавать контент на компьютере и потом публиковать его на сайте.
Сервис Blogger создал API и оффлайн-приложение для создания контента, и пользователи стали загружать контент через XML-RPC. После этого остальные блог-платформы сделали то же самое у себя.
В 2008-2009 годах компания Automattic, которая поддерживает плагины WP Super Cache, WooCommerce, Jetpack, VaultPress и другие, выпустила приложение WordPress для мобильных, которое использует интерфейс XML-RPC.
XML-RPC был в Вордпресс с самого начала, но по умолчанию он был выключен. После выхода мобильного приложения, начиная с версии 3.5, функцию включили по умолчанию.
Проблема XML-RPC
Проблема включенного XML-RPC заключается в том, что роботы подбирают логин и пароль к сайту через файл xmlrpc.php практически без ограничений. Если на главной странице входа на сайт можно установить ограничение попыток авторизации, то через файл xmlrpc.php с помощью нескольких запросов можно попробовать сотни логинов и паролей.
Другая проблема в том, что злоумышленник может использовать пингбэк-сеть WordPress сайтов для DDoS атаки на один из этих сайтов, то есть не взломанные сайты сети атакуют выбранный сайт.
В итоге роботы своими запросами расходуют большое количество ресурсов сервера, и могут подобрать правильный логин и пароль. Если вы не пользуетесь этим функционалом, его лучше выключить.
В этой статье вы узнаете 3 способа отключить XML-RPC.
Как отключить XML-RPC в wp-config.php
Для отключения добавьте это правило в конце wp-config.php после строки require_once(ABSPATH . 'wp-settings.php');
/* Отключение XML-RPC */
add_filter('xmlrpc_enabled', '__return_false');
Как отключить XML-RPC с помощью плагина
Если вы не хотите добавлять код, установите плагин Disable XML-RPC. Этот плагин делает то же самое, что и код в первом способе.
Как отключить XML-RPC в .htaccess
Хотя эти 2 способа хорошо работают, они не запрещают роботам подключаться к XML-RPC. Когда хакбот приходит на сайт и перебирает комбинации логинов и паролей, он использует ресурсы вашего сервера.
Чтобы отключить xmlrpc.php и не дать хакерам нагрузить сервер, отключите xmlrpc в файле .htaccess. В этом случае запрос не будет передаваться в WordPress, и робот не получит разрешения для подключения к XML-RPC.
Этот способ не будет нагружать сервер. Это самый правильный способ отключить XML-RPC.
Добавьте этот код в .htaccess:
# Block XML-RPC requests
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Частичное отключение XML-RPC
Чтобы отключить XML-RPC частично, добавьте следующие строки в .htaccess:
# Block XML-RPC requests
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 192.168.1.1
Allow from 10.0.0.0/100
</Files>
Измените адреса на те, которым вы хотите разрешить подключение к XML-RPC. Добавьте столько адресов, сколько вам нужно.
Если вы не хотите добавлять код, используйте плагин Stop XML-RPC Attack, он создает правило в файле .htaccess, которое разрешает использовать XML-RPC только плагину Jetpack и другим инструментам Automattic.
Плагины iThemes Security, Anti-Malware Security and Brute-Force Firewall и All in One WP Security & Firewall ограничивают попытки авторизации на стандартной странице входа на сайт и через XML-RPC.
All in One WP Security & Firewall может частично отключить XML-RPC, чтобы работал функционал Jetpack.
Wordfence не отключает XML-RPC, так как разработчики считают, что Вордпресс улучшил встроенную защиту этой функции.
[endtxt]