Jak wyłączyć XML-RPC w WordPressie?

Opublikowany: 2022-09-19

Czy szukasz informacji o pliku xmlrpc.php i jak możesz go wyłączyć w WordPressie? W tym artykule wyjaśnimy, czym jest xmlrpc.php i jak można go wyłączyć.

Komunikacja z WordPress z aplikacji spoza środowiska WordPress za pośrednictwem specyfikacji XML-RPC jest możliwa dzięki standaryzacji metody komunikacji między systemami.

Od samego początku specyfikacja ta miała wielką wartość dla społeczności WordPressa. Bez tego WordPress byłby odizolowany od reszty Internetu.

Jednak xmlrpc.php ma również pewne wady. WP REST API stało się istotnym elementem WordPressa od czasu wykrycia luk w plikach xmlrpc.php. To znacznie poprawia sposób interakcji WordPressa z innymi programami.

Celem tego artykułu jest wyjaśnienie, czym jest xmlrpc.php, dlaczego należy go wyłączyć i jak można go wyłączyć.

Sugerujemy również zapoznanie się z naszym artykułem o najlepszych wtyczkach bezpieczeństwa WordPress.

Co to jest plik xmlrpc.php?

Celem tej sekcji jest odpowiedź na pytanie Co to jest XML-RPC PHP? Specyfikację XML-RPC można wykorzystać do komunikacji między WordPressem a innymi systemami.

Wykorzystując HTTP jako protokół transportowy i XML jako protokół kodujący, XML-RPC może standaryzować protokoły używane w tej komunikacji.

WordPress został rozwidlony w 2003 roku z oprogramowania do blogowania b2, które używało XML-RPC jako interfejsu. Plik o nazwie xmlrpc.php znajduje się w katalogu głównym systemu i zawiera kod tej funkcji. Ten plik jest nadal dostępny, mimo że XML-RPC jest głównie przestarzały.

Wyłączanie XML-RPC było domyślnym ustawieniem we wczesnych wersjach WordPressa. Od wersji 3.5 jest domyślnie włączona, aby obsługiwać komunikację między aplikacją mobilną WordPress a instalacją WordPress.

Przed wersją 3.5 WordPress aplikacja mobilna WordPress mogła publikować treści tylko wtedy, gdy Twoja witryna została skonfigurowana z XML-RPC. Było to spowodowane tym, że aplikacja nie działała pod WordPress; zamiast tego komunikował się z Twoją witryną WordPress za pomocą xmlrpc.php.

Ponadto XML-RPC służy do komunikacji między WordPressem a innymi platformami blogowymi oraz między WordPressem a aplikacją mobilną WordPress.

XML-RPC może być używany do pingbacków i trackbacków. Służył również jako zaplecze dla wtyczki Jetpack, która umożliwiła witrynom WordPress z własnym hostingiem stać się członkami WordPress.com.

Ponieważ interfejs API REST został teraz zintegrowany z rdzeniem WordPress, nie używamy już pliku xmlrpc.php. Zamiast używać tego pliku, możesz teraz komunikować się z aplikacją mobilną WordPress, klientami komputerowymi, wtyczką Jetpack oraz innymi systemami i usługami za pomocą interfejsu API REST.

Możliwe jest również zintegrowanie REST API z szerszą gamą systemów, a jego elastyczność jest większa niż w przypadku xmlrpc.php. Ponieważ XML-RPC został zastąpiony przez REST API, musisz wyłączyć xmlrpc.php w swojej witrynie, aby uniknąć problemów.

Dlaczego powinieneś wyłączyć XML-RPC?

Należy mieć świadomość, że plik xmlrpc.php może ujawnić hakerom lukę w zabezpieczeniach witryny WordPress z obsługą XML-RPC, dlatego należy ją wyłączyć.

Korzystanie z XML-RPC nie jest już konieczne do komunikacji poza WordPress. Jeśli chcesz, aby Twoja witryna była jak najbardziej bezpieczna, wyłącz ją.

Z tego powodu WordPress zawsze będzie kompatybilny wstecz. Powinieneś stale aktualizować wtyczki i motywy WordPress powiązane z witrynami WordPress, jeśli jesteś za nie odpowiedzialny.

Jeśli XML-RPC jest włączony w Twojej witrynie, haker może użyć go jako narzędzia do przeprowadzenia ataku DDoS na Twoją witrynę. Mogą użyć modułu xmlrpc.php do wygenerowania wielu pingbacków do Twojej witryny, co może przeciążyć serwer i spowodować awarię witryny.

Co więcej, xmlrpc.php wysyła również informacje uwierzytelniające z każdym żądaniem, więc hakerzy mogą przechwycić te informacje i użyć ich do próby uzyskania dostępu do Twojej witryny. Ten atak typu brute force może umożliwić hakerom wykonanie złośliwego kodu, usunięcie kodu, a nawet uszkodzenie bazy danych.

Jak sprawdzić, czy XML-RPC jest włączony?

Kliknij poniższy link, aby uzyskać dostęp do strony internetowej: Usługa weryfikacji XML-RPC WordPress.

Po wprowadzeniu nazwy domeny kliknij przycisk Sprawdź.

Sprawdź, czy xmlrpc jest włączony na WordPress

Jeśli test się powiódł, zostanie teraz włączony XML-RPC, który należy natychmiast wyłączyć.

Wyłącz XMLRPC za pomocą wtyczek WordPress

Z różnych powodów właściciele witryn mogą chcieć wyłączyć funkcję XMLRPC. W tym celu możesz użyć różnych wtyczek, takich jak Wyłącz XML-RPC.

Wyłącz XMLRPC za pomocą wtyczki Wyłącz XML-RPC

Wyjaśniamy, jak używać wtyczki Disable XML-RPC do wyłączania funkcjonalności XMLRPC. Zaloguj się do swojego panelu administracyjnego WordPress.

1. Kliknij Wtyczki, a następnie Dodaj nowe.

2. Wpisz „Wyłącz XML-RPC” w polu wyszukiwania. Następnie zainstaluj wtyczkę Disable XML-RPC.

Zainstaluj nową wtyczkę w WordPress

3. Aktywuj wtyczkę i jesteś gotowy do pracy. Następnie XML-RPC jest wyłączony.

Zainstaluj Wyłącz wtyczkę CML-RPC

W tej wtyczce możesz znaleźć walidator XML-RPC, który może być użyty do sprawdzenia, czy XML-RPC został wyłączony. W przypadku wyłączenia XML-RPC pojawi się komunikat o błędzie. Jeśli nie, możesz go wyłączyć za pomocą tej wtyczki.

Skonfiguruj aktywację XML-RPC i REST API za pomocą wtyczki

Wtyczka REST XML-RPC Data Checker pozwala na bardziej szczegółową konfigurację interfejsu API REST i xmlrpc.php w witrynie.

Po zainstalowaniu i aktywacji wtyczki kliknij zakładkę XML-RPC po kliknięciu zakładki REST XML-RPC Data Checker w ustawieniach.

Za pomocą wtyczki możesz dokładnie określić, które funkcje xmlrpc.php są włączone w Twojej witrynie. Możliwe jest również całkowite wyłączenie go. We wtyczce znajduje się również zakładka, która pozwala kontrolować REST API, jeśli zdecydujesz się to zrobić.

Wyłącz XMLRPC bez wtyczki

Jeśli wolisz nie dodawać kolejnej wtyczki do swojej witryny, możesz wyłączyć xmlrpc.php za pomocą filtra lub pliku .htaccess. Rozważmy obie opcje razem.

Wyłącz xmlrpc.php za pomocą filtra

Używając filtru xmlrpc_enabled, bardzo łatwo jest wyłączyć xmlrpc.php. Powinieneś dodać tę funkcję i aktywować ją na swojej stronie:

 add_filter( 'xmlrpc_enabled', '__return_false' );

Funkcję można dodać do pliku funkcji motywu. Plik .htaccess można również edytować za pomocą cPanel lub FTP, w zależności od tego, czy jesteś połączony z dostawcą hostingu za pomocą Apache.

Funkcja __return_false WordPressa zwraca wartość logiczną false. Ten filtr blokuje tylko operacje wymagające zalogowanego użytkownika.

Musi zostać wyrejestrowany ze wszystkich metod, aby wyłączyć wszystkie operacje serwera XMLRPC. Aby to osiągnąć, musisz podłączyć się do filtra xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

Plik xmlrpc.php tworzy obiekt klasy wp_xmlrpc_server po wysłaniu żądania. W folderze wp-includes znajduje się plik klasy zawierający właściwość o nazwie metody.

Właściwość method zawiera tablicę nazw funkcji, do których można uzyskać dostęp za pośrednictwem żądań XML-RPC.

Funkcja jest zwracana z komunikatem o błędzie, gdy nie jest uwzględniona w tej tablicy. Tak więc, jeśli opróżnisz tablicę, masz pewność, że nie będziesz mógł korzystać z żadnych funkcji.

Wyłącz XML-RPC za pomocą .htaccess

Wyłączenie XML-RPC przy użyciu .htaccess obejmuje kilka prostych kroków. W ten sposób możesz wyłączyć xmlrpc.php .htaccess:

  • Możesz użyć FTP lub Menedżera plików, aby przejść do katalogu głównego swojej witryny.
  • Powinieneś otworzyć plik .htaccess.
  • Musisz dodać następujący kod do pliku .htaccess:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx można zastąpić adresem IP, któremu chcesz przyznać dostęp do xmlrpc.php. Jeśli chcesz całkowicie usunąć xmlrpc.php z WordPressa, możesz usunąć tę linię.

Wyłącz XMLRPC w Apache/Nginx

Wyłączenie XMLRPC w Apache/Nginx może być również prostym procesem. Poniższy kod powinien zostać dodany do pliku konfiguracyjnego Apache, aby wyłączyć xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Używając następującego kodu w pliku konfiguracyjnym Nginx, możesz wyłączyć xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

Jak wyszukiwać i znajdować ataki XML-RPC w różnych dystrybucjach Linuksa?

Jeśli szukasz ataków XML-RPC w różnych dystrybucjach Linuksa, możesz użyć następujących poleceń, aby zatrzymać ataki xmlrpc.php:

Serwer CentOS z zainstalowanym Apache:
 # grep xmlrpc /var/logs/httpd/access.log
Z Apache na Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
W przypadku serwerów opartych na Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
W przypadku serwerów opartych na cPanel:
 # grep xmlrpc /home/username/logs/access.log

Otrzymasz następujące dane wyjściowe, jeśli poprzednie polecenia zostały wykonane w witrynie WordPress, która jest atakowana:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Kiedy zachować włączony plik XML-RPC.php?

Jest kilka sytuacji, w których korzystne byłoby włączenie XML-RPC, a oto niektóre z nich:

  • Jeśli interfejs API REST jest niedostępny, gdy masz starą witrynę internetową, której z jakiegokolwiek powodu nie można zaktualizować do wersji 4.4 lub nowszej.
  • Program nie może uzyskać dostępu do interfejsu API REST w witrynie, której używasz do komunikacji z nim.
  • W celu zintegrowania niektórych aplikacji innych firm, które wymagają do działania XML-RPC.

Należy jednak zauważyć, że żadna z powyższych uwag krytycznych nie jest wystarczającym powodem do dalszego wykorzystywania exploita XML-RPC i xmlrpc.php.

Jedynym powodem, dla którego ma to WordPress, jest to, że jest wstecznie kompatybilny; w rezultacie będziesz chciał z niego korzystać tylko wtedy, gdy korzystasz z przestarzałej wersji WordPressa.

Dla tych, którzy chcą zachować aktualność swojej witryny i obsługiwać najnowszą wersję oprogramowania, xmlrpc.php powinien być wyłączony.

Testowanie funkcjonalności XML-RPC w WordPress

Dodatkowo możesz skorzystać z opcji testu WordPress, aby sprawdzić, czy Twoja witryna została pomyślnie wyłączona z otrzymywania żądań XML-RPC.

W tym celu możesz pobrać aplikację mobilną WordPress na swój telefon. Dostępne są wersje tej aplikacji na Androida i iPhone'a. Po zainstalowaniu aplikacji na urządzeniu, dotknij Wprowadź istniejący adres witryny, aby zacząć z niej korzystać.

Gotowe, jeśli zobaczysz komunikat o błędzie informujący, że usługi XML-RPC są wyłączone w tej witrynie. To jest zabroniony komunikat WordPress xmlrpc.php 403.

Wniosek

Specyfikacja XML-RPC została opracowana przed stworzeniem WordPressa, aby umożliwić komunikację z zewnętrznymi aplikacjami i systemami. W tej specyfikacji istnieje kilka luk w zabezpieczeniach, które mogą narazić Twoją witrynę na ataki.

Interfejs API REST umożliwia Twojej witrynie komunikację z innymi programami, umożliwiając bezproblemowe wyłączenie xmlrpc.php. Jeśli chcesz zwiększyć bezpieczeństwo swojej witryny, wykonaj wymienione kroki, aby to zrobić.