Dziś chciałbym podzielić się z Wami ważnym zagadnieniem dotyczącym bezpieczeństwa naszych stron internetowych opartych na WordPress. Pokażę jak zablokować XML-RPC w WordPress.
Czym jest XML-RPC i dlaczego warto go wyłączyć?
XML-RPC to protokół komunikacyjny, który umożliwia zdalne wykonywanie operacji na naszej stronie WordPress. Możemy np. w prosty sposób publikować posty nie logując się do swojego WordPressa w klasyczny sposób. Choć może to być przydatne w niektórych przypadkach, istnieje wiele powodów, dla których wielu ekspertów zaleca wyłączenie tego protokołu. Oto kilka z nich:
1. Ataki typu Brute Force: XML-RPC może być wykorzystywany do ataków typu Brute Force, gdzie potencjalny intruz próbuje zgadnąć hasło, używając różnych kombinacji. Wyłączenie XML-RPC eliminuje tę potencjalną lukę w bezpieczeństwie.
2. Zwiększenie wydajności: Jeśli nie korzystamy aktywnie z funkcji zdalnych komunikatów, to wyłączenie XML-RPC pozwala nam na zwiększenie wydajności naszej strony poprzez zredukowanie zbędnych żądań.
3. Ochrona przed atakami DDoS: XML-RPC może być wykorzystywany do przeprowadzania ataków typu Distributed Denial of Service (DDoS), co może prowadzić do niedostępności naszej strony. Wyłączenie tego protokołu może zabezpieczyć nas przed tego typu sytuacjami.
Poniższa zrzut ekranu przedstawia dziennik z wtyczki Limit Login Attempts Reloaded. W logach widać, że próbowano się logować używając nazwy użytkownika „admin”, a bramą jest właśnie XML-RPC.

Fragment logów z nieudanymi próbami logowania
Jak zablokować XML-RPC w WordPress?
Możemy to zrobić na kilka sposobów:
1. Za pomocą wtyczki. Istnieje wiele wtyczek dostępnych w Repozytorium WordPress, które pozwalają łatwo wyłączyć XML-RPC. Nie polecam jednak tej metody jeśli można to zrobić inaczej (patrz niżej).
2. Edytując plik functions.php. Możemy dodać kod do pliku functions.php naszego motywu, aby wyłączyć XML-RPC:
// Wyłącz XML-RPC w WordPress
add_filter('xmlrpc_enabled', '__return_false');Pamiętajmy jednak, że należy to robić ostrożnie, aby uniknąć problemów z funkcjonalnością strony.
3. Konfigurując plik .htaccess. Zaawansowani użytkownicy mogą skonfigurować plik .htaccess, aby zablokować dostęp do XML-RPC:
# wyłączenie xmlrpc w htaccess
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Satisfy All
</Files>
Jak sprawdzić czy mam włączony protokół XML-RPC?
Przygotowałem małą aplikację, dzięki której możesz sprawdzić czy WordPress ma włączony XML-RPC. Wystarczy, że wpiszesz w formularz adres swojej witryny, a w odpowiedzi otrzymasz komunikat o stanie usługi. Jeśli protokół jest włączony, a z niego nie korzystasz, rozważ jego wyłączenie.
Wartością dodaną wyłączenia XML-RPC jest zwiększenie bezpieczeństwa naszej strony WordPress, a także poprawa jej wydajności. Dbajmy o nasze witryny, podejmując proaktywne kroki w kierunku zabezpieczenia przed potencjalnymi zagrożeniami. Jeśli jeszcze tego nie zrobiliście, zachęcam do rozważenia wyłączenia XML-RPC na Waszych stronach.
Jeśli temat Cię przerasta i chciałbyś, abym wyłączył tę niebezpieczną funkcjonalność na Twojej stronie, zapraszam na stronę Kontakt.

