Що таке xmlrpc.php в WordPress і навіщо його відключати

Last Updated on: Червень 20th, 2018Elena B. 5 Хв Читання

В WordPress завжди був вбудований інструмент для віддаленого звернення до вашого сайту. Дійсно, іноді потрібно дістатися до свого сайту, а комп’ютер далеко від вас. Тривалий час рішенням був файл під назвою xmlrpc.php. Однак останні роки цей файл став більшою проблемою, ніж рішенням.

Нижче ми детальніше розберемо xmlrpc.php і чому він був створений. Ми також розглянемо загальні проблеми безпеки, які він може викликати і як їх виправити для вашого сайту на WordPress.

Зміст

  • Що таке Xmlrpc.php?
  • Навіщо був створений Xmlrpc.php і як він використовувався?
  • Навіщо відключати Xmlrpc.php
  • Метод 1: відключення Xmlrpc.php за допомогою плагіна
  • Метод 2: відключення Xmlrpc.php вручну
  • Заключні думки

Що таке Xmlrpc.php?

XML-RPC – це функціональне засіб WordPress, яке дозволяє передавати дані з HTTP виступаючим в якості транспорту і XML – для кодування. Оскільки WordPress не є закритою системою і часто спілкується з іншими системами, для цієї задачі були знайдені рішення.

Наприклад, скажімо, ви хочете зробити публікацію на своєму сайті з вашого мобільного телефону. Вам потрібно використовувати віддалений доступ надається xmlrpc.php.

Головним функціоналом xmlrpc.php є можливість підключитися до сайту зі смартфона, реалізація трекбеков і линкбеков з інших сайтів і деякі функції, пов’язані з плагіном Jetpack.

Навіщо був створений Xmlrpc.php і як він використовувався?

Реалізація XML-RPC йде далеко в ранні дні WordPress і навіть до того, як WordPress став WordPress-му.

Повертаючись у ті часи, коли інтернет тільки недавно з’явився, з’єднання були дуже повільними і процес запису і публікації в інтернеті був набагато складніше і времязатратнее. Замість внесення змін відразу через браузер, більшість робили їх в офлайні і потім копіювали і вставляли свій контент вже онлайн. І цей процес був далекий від ідеалу.

Рішенням (на той момент) було створення клієнта для офлайн блогінгу, де ви могли складати свій контент, потім підключатися до свого блогу і публікувати його. Це підключення здійснювалося через XML-RPC. З основним функціоналом XML-RPC ранні додатки використовуючи подібні підключення надавали людям можливість заходити на їх сайти WordPress з інших пристроїв.

XML-RPC сьогодні

У 2008 році з версією WordPress 2.6, з’явилася опція включення і виключення XML-RPC. Однак з релізом WordPress програми для iPhone, підтримка XML-RPC була включена за замовчуванням і не було можливості для відключення. Так залишилося і понині.

Звичайно функціональність, що надається цим файлом значно зменшилася з часом, і розмір файлу зменшився з 83kb до 3kb, він вже не відіграє такої ролі, як раніше.

Властивості XML-RPC

З новим інтерфейсом програмування додатків (API) WordPress ми можемо очікувати, що XML-RPC буде вже повністю відключений. Сьогодні цей новий API все ще на етапі випробувань і може бути включений тільки через спеціальний плагін.

Хоча ви можете очікувати, що API буде включений безпосередньо в ядро WordPress в майбутньому, що повністю виключить необхідність використання xmlrpc.php.

Новий API не ідеальний, але він забезпечує хорошу надійний захист, на відміну від xmlrpc.php.

Навіщо відключати Xmlrpc.php

Найбільшою проблемою, пов’язаною з XML-RPC, є безпека. Проблема не безпосередньо пов’язана з XML-RPC, але його можна використовувати для включення атаки на ваш сайт.

Звичайно ви можете захиститися дуже надійний паролем і плагінами WordPress, що забезпечують безпеку. Але найкращим режимом захисту буде просто його відключити.

Є два основних слабких місця XML-RPC, які використовували в минулому.

Перше – використовує атаку шляхом прямого підбору пароля (brute force attacks) для отримання доступу до вашого сайту. Атакуючий спробує отримати доступ до вашого сайту, використовуючи xmlrpc.php підбираючи різні комбінації імен користувачів і паролів. Вони можуть ефективно використовувати одну команду для тестування сотень різних паролів. Це дозволяє їм обходити інструменти безпеки, які зазвичай виявляють і блокують атаки прямого добору.

Друге – переведення сайту в офлайн шляхом DDoS атаки. Хакери будуть використовувати зворотне повідомлення в WordPress для відправки його тисячам сайтів одночасно. Цей функціонал xmlrpc.php дає хакерам майже нескінченну кількість IP-адрес для поширення DDoS атаки.

Щоб перевірити, чи працює XML-RPC на вашому сайті, ви можете запустити його за допомогою інструменту під назвою XML-RPC Validator. Запустите свій сайт за допомогою інструменту, і якщо ви отримаєте повідомлення про помилку, значить, у вас немає підтримки XML-RPC.

Якщо ви отримаєте повідомлення про успішне завершення, ви можете зупинити xmlrpc.php одним з двох підходів нижче.

Метод 1: відключення Xmlrpc.php за допомогою плагіна

Відключити XML-RPC на вашому сайті WordPress неймовірно просто.

Перейдіть в розділ Плагіни ” Додати новий вашої адмін консолі WordPress. Знайдіть плагін Disable XML-RPC та встановіть його, він виглядає як на картинці нижче:

Активуйте плагін і все готово. Цей плагін автоматично вставить необхідний код для відключення XML-RPC.

Однак пам’ятайте, що встановлені плагіни можуть використовувати частини XML-RPC, і тоді його відключення може викликати конфлікт плагінів або окремих їх частин і виведення їх з робочого режиму.

Якщо ви хочете тільки відключити окремі елементи XML-RPC, але дозволити іншим плагінів і функціям працювати, тоді зверніться до таких плагінів:

  • Stop XML-RPC Attack. Цей плагін зупинити всі XML-RPC атаки, але він дозволити продовжити роботу таких плагінів як Jetpack та інші автоматичні інструменти і плагіни, надаючи їм доступ до файлів xmlrpc.php.
  • Control XML-RPC Publishing. Це дозволяє вам зберегти контроль і використовувати віддалено публікації.

Метод 2: відключення Xmlrpc.php вручну

Якщо ви не хочете використовувати плагін та віддаєте перевагу робити це вручну, дотримуйтесь цього підходу. Він зупинить всі вхідні запити xmlrpc.php до того, як він буде переданий в WordPress.

Відкрийте файл .htaccess. Можливо, вам доведеться включити ‘показати приховані файли’ в файловому менеджері або FTP-клієнті, щоб знайти цей файл.

Вставте цей код у файл .htaccess:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Заключні думки

В цілому, XML-RPC був добротним розв’язанням деяких проблем, які виникали з-за віддаленої публікації на вашому сайті WordPress. Однак разом з тим з’явилися деякі дірки в безпеці, які виявилися досить небезпечними для деяких власників сайтів на WordPress.

Щоб ваш сайт залишався в безпеці, рекомендується повністю відключити xmlrpc.php якщо вам не потрібні деякі функції, необхідні для віддаленої публікації і плагіна Jetpack. Потім ви можете використовувати обхідні плагіни, які дозволяють використовувати ці функції, при цьому виправляючи дірки в безпеці.

З часом ми можемо очікувати, що функції XML-RPC стануть інтегрованими в новий WordPress API, який буде підтримувати віддалений доступ, не жертвуючи безпекою.

Ви заблокували доступ до XML-RPC через плагін або вручну? Або виникли які-небудь проблеми з безпекою з-за того, що він був перш активним? Поділіться своїм досвідом в коментарях нижче.