XML-RPC w WordPressie
1 Odpowiedź
Hej!
Krótka odpowiedź na pytanie „czy warto” – tak, w zdecydowanej większości przypadków warto. A teraz dłuższa wersja, żebyś wiedziała co, dlaczego i jak.
Czym w ogóle jest XML-RPC?
XML-RPC to stary protokół, który pozwalał na komunikację z WordPressem z zewnątrz – bez logowania przez przeglądarkę. Kiedyś używały go aplikacje mobilne WordPress, narzędzia do zdalnego publikowania postów czy usługi jak Jetpack. Dziś REST API w dużej mierze zastąpiło XML-RPC i na większości stron ten protokół po prostu nie jest potrzebny.
Problem w tym, że xmlrpc.php – bo o ten plik chodzi – jest domyślnie włączony w każdej instalacji WordPress i jest jednym z częściej atakowanych punktów wejścia. Hakerzy używają go do ataków brute force (jedno żądanie XML-RPC może testować setki kombinacji loginów i haseł jednocześnie), do ataków DDoS przez pingbacki albo do prób przejęcia konta. Jeśli nie używasz niczego, co wymaga XML-RPC – wyłącz go.
Jak sprawdzić, czy XML-RPC jest aktywny?
Wejdź w przeglądarce na adres: https://mojastrona.pl/xmlrpc.php
Jeśli zobaczysz komunikat „XML-RPC server accepts POST requests only” – XML-RPC jest włączony i dostępny publicznie.
Metoda 1 – przez .htaccess (najskuteczniejsza)
Otwórz plik .htaccess w głównym katalogu strony i dodaj przed sekcją # BEGIN WordPress:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
To zablokuje dostęp do pliku xmlrpc.php dla wszystkich – serwer zwróci błąd 403 zanim WordPress w ogóle się uruchomi. Najszybsze i najmniej obciążające rozwiązanie.
Metoda 2 – przez functions.php
Jeśli wolisz nie ruszać .htaccess, możesz wyłączyć XML-RPC przez functions.php w motywie potomnym:
add_filter( 'xmlrpc_enabled', '__return_false' );
Ta metoda wyłącza funkcjonalność XML-RPC po stronie WordPressa, ale plik xmlrpc.php nadal jest technicznie dostępny – WordPress po prostu nie obsłuży żądania. Trochę słabsze rozwiązanie niż blokada w .htaccess, bo serwer nadal musi załadować WordPress żeby odrzucić żądanie.
Metoda 3 – przez wtyczkę
Jeśli wolisz mieć to ogarnięte przez panel admina bez dotykania plików – wtyczka Disable XML-RPC zrobi dokładnie to co nazwa wskazuje. Instalujesz, aktywujesz i XML-RPC jest wyłączony. Zero konfiguracji.
Kiedy XML-RPC zostawić włączony?
Są sytuacje, w których wyłączenie XML-RPC zaszkodzi. Sprawdź najpierw, czy używasz:
– Jetpack – część funkcji Jetpacka wymaga XML-RPC do komunikacji z serwerami Automattic
– Aplikacji mobilnej WordPress na telefonie do zarządzania stroną
– Zewnętrznych narzędzi do publikowania treści (np. Windows Live Writer, MarsEdit)
– Usług monitorujących dostępność strony, które odpytują xmlrpc.php
Jeśli żadna z tych rzeczy Cię nie dotyczy – śmiało wyłączaj.
Po wyłączeniu – sprawdź
Wejdź ponownie na https://mojastrona.pl/xmlrpc.php – powinieneś dostać błąd 403 (przy metodzie .htaccess) albo pustą odpowiedź bez komunikatu o XML-RPC (przy metodzie przez functions.php). Jeśli tak – działa. 😊