Co to jest XML-RPC w WordPressie? Jak działa ten mechanizm i do czego jest wykorzystywany. Jak wyłączyć i zablokować XML-RPC w WP?
Spis treściCzym jest i czy powinieneś obawiać się obecności pliku xmlrpc.php na swoim serwerze? Jeśli korzystasz z WordPressa, to z pewnością wiesz, że znajduje się on w katalogu głównym. Czy trzeba i w jaki sposób można go zablokować, aby uniknąć poważnych problemów?
Zarządzasz stroną internetową, a na Twoim serwerze znajduje się nieznany Ci plik XML-RPC? Jeśli na Twoim hostingu został zainstalowany WordPress, to obecność tego rozwiązania nie jest niczym wyjątkowym. Jego pojawienie się jest standardem, a nietypowa nazwa związana jest z realizowanym protokołem XML-RPC. Problem jednak w tym, że jego obecność i aktywność może potencjalnie sprowadzić na Twoje miejsce w sieci liczne kłopoty.
Wielu specjalistów sugeruje, że funkcja XML-RPC przynosi więcej szkody niż pożytku. Sama obecność pliku nie sprowadza na Ciebie natomiast żadnego niebezpieczeństwa. Bezpośrednie użycie protokołu może jednak sprawić, że staniesz się potencjalnie atrakcyjną ofiarą dla internetowych oszustów. Właśnie dlatego tak często po instalacji WordPressa zalecana jest natychmiastowa blokada funkcji XML-RPC.
Co to jest plik XMLRPC.PHP?
Plik xmlrpc.php wziął swoją nazwę z połączenia dwóch członów:
- XML (ang. Extensible Markup Language) – rozszerzalny język znaczników,
- RPC (ang. Remote Procedure Call) – zdalne wywoływanie procedury.
Jak łatwo teraz się domyślić, funkcja XML-RPC jest zdalnym protokołem umożliwiającym łączenie się z WordPressem przy użyciu XML. W praktyce zatem XML jest mechanizmem kodowania. Protokół HTTP odpowiada z kolei za transport informacji między CMS-em a dowolną aplikacją zewnętrzną.
Najprościej mówiąc, plik xmlrpc.php pozwala na komunikację z WordPressem „z zewnątrz”. Odpowiada za przesyłanie informacji z i do aplikacji kompatybilnych z tym systemem zarządzania treścią. Jest to funkcja możliwa praktycznie w każdej wersji CMS-a. Powstała jako jedna z pierwszych, zaraz po stworzeniu tego oprogramowania.
Obecnie przyjmuje się, że najczęściej plik XML-RPC powinien być zablokowany, gdy nie jest on wykorzystywany. Wynika to z faktu, że pozwalając na komunikację zewnętrzną, naraża stronę internetową na potencjalne niebezpieczeństwo. Może bowiem dość łatwo zostać wykorzystany przez internetowych oszustów do różnego typu ataków i nadużyć, np.:
- ataków DDoS,
- wysyłki SPAMu.
Do czego służy XML-RPC? Czy warto zostawić aktywną funkcję XML-RPC?
Wielu właścicieli stron internetowych decyduje się na blokadę funkcji XML-RPC. To jednak oznacza brak możliwości skorzystania z niej. Warto więc przed podjęciem takiej decyzji dowiedzieć się, z czego się rezygnuje. Na tej podstawie możesz podjąć świadomą decyzję dotyczącą tego, który scenariusz jest dla Ciebie korzystniejszy.
Jak wspominaliśmy, plik xmlrpc.php służy do zewnętrznej komunikacji z WordPressem. W jakich sytuacjach jednak może Ci się przydać ta możliwość? Jednymi z najczęściej wykorzystywanych opcji są:
- pingbacki – to funkcja WordPress, dzięki której dowiadujesz się, że ktoś dodał link do Twojego miejsca w sieci. Otrzymujesz powiadomienie, że witryna została powiązana z zewnętrznym wpisem (lub na odwrót – Ty umieściłeś odnośnik do innego serwisu i jego administrator otrzymał powiadomienie). Jest to działanie obsługiwane tylko między dwoma systemami, które z niego korzystają;
- trackbacki – rozwiązanie stworzone do wymiany informacji między blogami. Określane jest jako „starsza wersja” pingbacka i obecnie wykorzystywane jest tylko przy współpracy z leciwymi blogami. To funkcja, którą można wysyłać wyłącznie ręcznie.
Oprócz tego XML-RPC może zostać wykorzystany do zdalnego zarządzania CMS-em. W praktyce więc uzyskasz dostęp do WordPressa za pomocą zewnętrznych aplikacji czy usług. Dzięki temu możesz np. wprowadzać zmiany w treści czy publikować wpisy przy użyciu oprogramowania mobilnego.
To rozwiązanie bywa więc przydatne, ale zarazem może zostać wykorzystane przez niepożądane osoby trzecie. Z jego pomocą mogą one np. łamać hasła na stronie i organizować wysyłkę SPAMu lub przeprowadzać ataki. Musisz więc zastanowić się, czy jesteś w stanie podjąć to ryzyko dla potencjalnych korzyści wynikających z obsługi tej funkcji. Zdecydowana większość użytkowników raczej stawia na ochronę danych swoich i użytkowników, blokując plik xmlrpc.php. Wyjątkiem są oczywiście osoby aktywnie wykorzystujące jego możliwości.
Jak sprawdzić, czy XML-RPC jest aktywny?
Wielu właścicieli witryn internetowych – szczególnie tych początkujących – zwyczajnie nie wie, czy mają aktywny plik xmlrpc.php. Na szczęście sprawdzenie tego nie jest trudne. Nie wymaga nawet logowania do panelu administracyjnego WordPressa czy sprawdzania zawartości pliku. Wszystko, co musisz zrobić, to przejść do witryny WordPress XML-RPC Validation Service. Znajdziesz ją pod adresem https://xmlrpc-check.hostpress.me/. Następnie w polu „Address” wpisz pełny adres URL swojego miejsca w sieci i naciśnij „Check„.
Jeśli dostęp do pliku xmlrpc.php został zablokowany, zobaczysz na ekranie powiadomienie z czerwonym krzyżykiem.
W przypadku aktywnej funkcji XML-RPC powiadomienie oznaczone jest zielonym znaczkiem.
Jak zablokować plik XMLRPC.php?
O ile nie korzystasz z aplikacji i połączeń zewnętrznych w ramach swojej witryny, to rozważ zablokowanie pliku xmlrpc.php. Pamiętaj jednak, że w tym przypadku nie wystarczy wejść na serwer FTP i go trwale usunąć. Konieczne jest tu zastosowanie jednej z dwóch, stworzonych do tego celu, metod:
- ustawieniu blokady w pliku .htaccess,
- ustawieniu blokady w pliku functions.php.
Obie są równie skuteczne i przynoszą takie same rezultaty. Przeprowadzisz je, edytując odpowiednie pliki znajdujące się na Twoim serwerze. Możesz zrobić to na kilka sposobów. Najłatwiej jest natomiast skorzystać z:
- klienta FTP/SFTP (programu FTP takiego jak np. FileZilla czy WinSCP),
- menedżera plików, dostępnego po zalogowaniu do konta hostingowego (np. w cPanel lub DirectAdmin),
- połączenia SSH.
Poniżej opisaliśmy proces skorzystania z nich krok po kroku. Założyliśmy też, że masz już dostęp do plików na swoim serwerze WWW dzięki jednej z powyższych metod.
Blokada XML-RPC w .htaccess na hostingu
Plik .htaccess pozwala na wprowadzanie rozmaitych zmian w działaniu witryny. Jedną z nich jest właśnie blokada XML-RPC. Aby to zrobić, odszukaj plik w głównym folderze serwera, a następnie rozpocznij jego edycję. Zależnie od metody, odbywać się to może online lub z poziomu programu do edycji plików tekstowych na Twoim urządzeniu.
W skrypcie pliku musisz umieścić zapis:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Następnie zapisz wprowadzone zmiany. Zawsze przed edycją pliku polecamy wykonać jego kopię zapasową na wypadek, gdyby coś poszło nie tak. Jeśli do edycji użyty został klient FTP, umieść zmieniony plik na serwerze i gotowe. Dostęp do XML-RPC jest od tej chwili zablokowany dla wszystkich.
Blokada XML-RPC na WordPress (w pliku functions.php)
Alternatywnym rozwiązaniem jest edycja pliku functions.php. Jego również znajdziesz na swoim serwerze w folderze ze stroną WWW w ścieżce /wp-content/themes/nazwa-twojego-motywu/. Po rozpoczęciu edycji musisz dodać do niego poniższy kod:
add_filter('xmlrpc_enabled', '__return_false');
Następnie zapisz zmiany w pliku i – jeśli to konieczne – prześlij go na swój serwer. W tym przypadku również wskazane jest wcześniejsze utworzenie kopii zapasowej przed edycją.