Начиная с первых версий у Вордпресса есть функция удаленного управления сайтом. Эта же функция оповещает владельца сайта о том, что где-то оставили ссылку на его сайт. Это работает с помощью XML-RPC.
XML-RPC (XML Remote Procedure Call — Вызов удаленной процедуры) используется для подключения к сайту через мобильное приложение WordPress (android, ios), для трекбэков и пингбэков (когда другие сайты ссылаются на ваш сайт), и используется плагином Jetpack.
История XML-RPC
Когда к интернету подключались через модем и скорость подключения была низкой, было трудно публиковать страницы. Тогда решили создавать контент на компьютере и потом публиковать его на сайте. Сервис Blogger создал API и оффлайн-приложение для создания контента, и пользователи стали загружать контент на платформу через XML-RPC. После этого остальные блог-платформы сделали то же самое у себя.
В 2008-2009 годах компания Automattic, которая делает плагины WP Super Cache, WooCommerce, VaultPress, Jetpack и другие, выпустила приложение WordPress для мобильных, которое использует интерфейс XML-RPC.
XML-RPC был в Вордпресс с самого начала, но по умолчанию был выключен. После выхода мобильного приложения начиная с версии 3.5 функцию сделали включенной по умолчанию.
Проблема XML-RPC
Проблема включенного XML-RPC заключается в том, что роботы подбирают логин и пароль к сайту через файл xmlrpc.php практически без ограничений. Если на главной странице входа на сайт можно установить ограничение попыток авторизации, то через файл xmlrpc.php с помощью нескольких запросов можно попробовать сотни логинов и паролей.
Другая проблема в том, что злоумышленник может использовать пингбэк-сеть Вордпресс сайтов для DDoS атаки на один из этих сайтов, то есть невзломанные сайты сети атакуют выбранный сайт.
В итоге проблема не в самом XML-RPC, а в факте его использования. Если вы не пользуетесь этим функционалом, его лучше выключить.
В этой статье вы узнаете 3 способа отключить XML-RPC.
Как отключить XML-RPC в wp-config.php
Добавьте это правило в конце wp-config.php после строки require_once(ABSPATH . 'wp-settings.php');
Как отключить XML-RPC с помощью плагина
Если вы не хотите добавлять код, установите плагин Disable XML-RPC, он делает то же самое, что и код в первом способе.
Как отключить XML-RPC в .htaccess
Хотя эти 2 способа хорошо работают, они окажутся ресурсозатратными когда сайт атакуется хакерами. Когда хакбот приходит на сайт и перебирает комбинации логинов и паролей, он использует ресурсы вашего сервера.
Чтобы отключить xmlrpc.php и не дать хакерам нагрузить сервер, отключите xmlrpc в файле .htaccess. В этом случае запрос не будет передаваться в Вордпресс, и не будет нагружать сервер. Это самый правильный способ отключить XML-RPC.
Добавьте этот код в .htaccess:
Частичное отключение XML-RPC
Чтобы отключить XML-RPC частично, добавьте этот снипет в .htaccess:
Измените адреса на те, которым вы хотите разрешить подключение к 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, так как разработчики считают, что Вордпресс улучшил встроенную защиту этой функции.
Надеюсь, статья была полезна. Оставляйте комментарии.
Спасибо! Взял на заметку!