
Stronę WordPress można realnie wzmocnić bezpieczeństwo, wyłączając lub blokując plik xmlrpc.php, który domyślnie pozostaje aktywny w każdej instalacji.
Spis treści
Czym jest XML-RPC i do czego został stworzony?
XML-RPC to mechanizm umożliwiający zdalną komunikację z WordPressem, oparty na pliku xmlrpc.php, znajdującym się w katalogu głównym strony. Powstał w czasach, gdy popularne było publikowanie wpisów z zewnętrznych aplikacji desktopowych lub mobilnych.
Dzięki XML-RPC możliwe było między innymi:
- publikowanie wpisów poza panelem WP,
- moderowanie komentarzy zdalnie,
- komunikowanie się z narzędziami typu Jetpack.
Problem polega na tym, że dzisiaj większość stron w ogóle z tego nie korzysta, a plik nadal pozostaje dostępny publicznie.
Dlaczego XML-RPC bywa realnym zagrożeniem?
XML-RPC jest jednym z najczęściej skanowanych punktów WordPressa przez boty. Powód jest prosty:
umożliwia masowe próby logowania w jednym zapytaniu oraz wykorzystywanie funkcji pingback.
W praktyce oznacza to:
- próby łamania haseł bez klasycznego formularza logowania,
- obciążanie serwera zapytaniami POST,
- wykorzystywanie strony jako pośrednika w atakach na inne witryny,
- brak czytelnych śladów w standardowych logach WP.
Z doświadczenia administracyjnego: bardzo często spadki wydajności i dziwne skoki zużycia CPU zaczynają się właśnie od ruchu na xmlrpc.php.
Jak sprawdzić, czy XML-RPC jest aktywny?
Wystarczy wejść w przeglądarce na adres:
https://twojastrona.pl/xmlrpc.php
Jeżeli zobaczysz komunikat informujący, że serwer akceptuje tylko zapytania POST, oznacza to, że plik działa i może przyjmować ruch z zewnątrz.
Jak wyłączyć XML-RPC krok po kroku?
Metoda 1: Wyłączenie za pomocą wtyczki
To rozwiązanie dla osób, które nie chcą ingerować w pliki serwera.
- Zaloguj się do panelu WordPress.
- Wejdź w Wtyczki → Dodaj nową.
- Wyszukaj „Disable XML-RPC”.
- Zainstaluj i aktywuj.
Po aktywacji plik przestaje obsługiwać żądania XML-RPC bez dodatkowej konfiguracji.
Metoda 2: Blokada przez plik .htaccess (serwer)
To najskuteczniejsze rozwiązanie, ponieważ ruch jest zatrzymywany zanim dotrze do WordPressa.
Dodaj na końcu pliku .htaccess:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Po zapisaniu boty otrzymają błąd dostępu, a serwer przestanie tracić zasoby.
Metoda 3: Wyłączenie przez functions.php
Rozwiązanie pośrednie, gdy nie masz dostępu do konfiguracji serwera.
add_filter('xmlrpc_enabled', '__return_false');
Ta metoda dezaktywuje funkcję, ale nie blokuje fizycznego dostępu do pliku, dlatego nie jest optymalna przy dużym ruchu botów.
Metoda 4: Firewall aplikacyjny
Jeśli korzystasz z rozwiązań typu Wordfence lub Sucuri, możesz zablokować próby autoryzacji XML-RPC bez całkowitego wyłączania pliku.
Sprawdza się to tam, gdzie część integracji nadal z niego korzysta.
Przykład z praktyki administratora
Na jednej ze stron klienta serwer był regularnie przeciążany w nocy, mimo braku realnego ruchu użytkowników. Logi hostingu wskazywały setki zapytań POST na xmlrpc.php.
Po zastosowaniu blokady na poziomie .htaccess:
- zużycie CPU spadło o ponad połowę,
- zniknęły losowe przerwy w dostępności,
- hosting przestał wysyłać alerty o nadmiernym obciążeniu.
Bez instalowania dodatkowych wtyczek.
Najczęstsze błędy przy blokowaniu XML-RPC
- wyłączanie XML-RPC bez sprawdzenia, czy strona korzysta z aplikacji mobilnej,
- stosowanie wyłącznie kodu w
functions.php, - blokowanie pliku bez testu odpowiedzi serwera,
- pozostawienie XML-RPC aktywnego „bo nic się nie dzieje”.
Porównanie metod dezaktywacji XML-RPC
| Metoda | Poziom ochrony | Obciążenie WP | Wymagana wiedza |
|---|---|---|---|
| Wtyczka | Średni | Tak | Niska |
| .htaccess | Wysoki | Nie | Średnia |
| functions.php | Niski | Tak | Niska |
| Firewall | Wysoki | Nie | Średnia |
Mini FAQ
Czy wyłączenie XML-RPC wpływa na panel administracyjny?
Nie, logowanie do /wp-admin działa normalnie.
Czy każda strona powinna blokować XML-RPC?
Jeśli nie korzysta z aplikacji mobilnej lub specyficznych integracji – tak.
Czy REST API to to samo?
Nie. REST API działa niezależnie od XML-RPC i nie wymaga jego aktywności.
Trzy rzeczy, które warto zapamiętać
- XML-RPC jest aktywny domyślnie i często niepotrzebny.
- Najlepszą ochronę daje blokada na poziomie serwera.
- To drobna zmiana, która realnie zmniejsza ryzyko ataków.
Podsumowanie
Wyłączenie XML-RPC to jeden z tych ruchów, które nie są widowiskowe, ale robią ogromną różnicę w praktyce. Plik działa domyślnie, a w większości przypadków nie jest do niczego potrzebny, za to bywa regularnie wykorzystywany przez boty do obciążania serwera i prób logowania.
Największą skuteczność daje blokada na poziomie serwera, bo zatrzymuje ruch jeszcze zanim dotrze do WordPressa. Wtyczki i kod w motywie mogą być pomocne, ale nie zawsze rozwiązują problem u źródła. Warto też pamiętać, że nie każda strona powinna wyłączać XML-RPC w ciemno – jeśli korzysta z aplikacji mobilnej lub konkretnych integracji, lepszym rozwiązaniem bywa ograniczenie dostępu zamiast pełnej blokady.
Z perspektywy administratora to jeden z tych elementów, które sprawdzam zawsze na początku. Mały detal, a potrafi znacząco poprawić stabilność, bezpieczeństwo i spokój właściciela strony.





