XML-RPC to podstawowe API WordPress, które pozwala użytkownikom łączyć się ze swoimi stronami WordPress za pomocą aplikacji, narzędzi i usług stron trzecich. Niestety, w przeszłości hakerzy znajdowali sposoby na wykorzystanie XML-RPC do uzyskania dostępu do stron WordPress.
W WPBeginner pomogliśmy tysiącom użytkowników zabezpieczyć ich witryny WordPress i wyłączyć XML-RPC. Odkryliśmy, że istnieją różne sposoby, w zależności od Twojej wiedzy technicznej.
Na przykład, możesz wyłączyć XML-RPC, uzyskując dostęp do pliku .htaccess lub dodając fragment kodu. Tymczasem, jeśli jesteś początkującym, istnieje wtyczka, która wyłącza główny plik bez konieczności edycji kodu.
W tym artykule pokażemy Ci, jak łatwo wyłączyć XML-RPC w WordPressie, korzystając z różnych metod.

Co to jest XML-RPC w WordPressie?
XML-RPC to podstawowe API WordPress, które jest domyślnie włączone od czasu wydania WordPress 3.5 w 2012 roku. Pozwala ono programistom na używanie protokołów XML i HTTPS do łączenia się z Twoją witryną WordPress i interakcji z nią.
Krótko mówiąc, potrzebujesz włączonego XML-RPC, aby uzyskać dostęp i publikować swój blog zdalnie, na przykład gdy chcesz używać aplikacji mobilnej do zarządzania swoją witryną lub nawiązywać połączenia z usługami automatyzacji, takimi jak Uncanny Automator lub Zapier.
Jednakże, jeśli nie korzystasz z aplikacji mobilnych ze swoją stroną internetową, niektórzy eksperci ds. bezpieczeństwa WordPress mogą doradzić wyłączenie XML-RPC. Zamyka to drzwi, które potencjalnie mogą zostać wykorzystane do zhakowania Twojej strony internetowej.
Mając to na uwadze, przyjrzyjmy się, jak łatwo wyłączyć API XML-RPC w WordPress. Metoda z plikiem .htaccess jest najlepsza, ponieważ zużywa najmniej zasobów, a inne metody są łatwiejsze dla początkujących.
Metoda 1: Wyłącz WordPress XML-RPC za pomocą .htaccess (zaawansowane)
Ta metoda jest przeznaczona dla zaawansowanych użytkowników, ponieważ wymaga edycji pliku .htaccess Twojej witryny. Zalecamy, aby początkujący korzystali z Metody 2 lub 3.
Ten sposób ma kilka zalet, takich jak możliwość udzielenia zdalnego dostępu sobie i swojemu zespołowi, jednocześnie ograniczając dostęp innym. Nie wpłynie to również negatywnie na wydajność WordPressa, ponieważ wyłącza żądania XML-RPC, zanim zostaną przekazane do WordPressa.
Musisz dodać następujący kod do swojego pliku .htaccess. Możesz to zrobić, łącząc się ze swoją witryną za pomocą klienta FTP lub menedżera plików. Ponadto użytkownicy All in One SEO mogą użyć wbudowanego narzędzia edytora wtyczki do dodania fragmentu kodu, jak widać na poniższym zrzucie ekranu.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Jeśli chcesz nadać określonemu użytkownikowi zdalny dostęp do swojej witryny, po prostu zamień '123.123.123.123' w linii 5 na jego adres IP. Możesz dodać wiele adresów IP, oddzielając je spacjami.
Lub, jeśli chcesz całkowicie wyłączyć XML-RPC, usuń całą linię 5.
Uwaga: Jeśli nie możesz znaleźć pliku .htaccess, zapoznaj się z naszym przewodnikiem na temat dlaczego nie możesz znaleźć pliku .htaccess w WordPress.
Metoda 2: Wyłącz XML-RPC WordPress za pomocą fragmentu kodu (zalecane)
Ta metoda wymaga dodania kodu do Twojej witryny WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym przewodnikiem, jak kopiować i wklejać niestandardowe fragmenty kodu w WordPress.
WPCode to najłatwiejszy i najbezpieczniejszy sposób dodawania kodu do witryny WordPress. Pomaga zarządzać fragmentami kodu i zapobiega błędom, które mogłyby zepsuć witrynę.
W tej metodzie użyjemy jednego z wbudowanych fragmentów kodu WPCode, aby wyłączyć XML-RPC.
Najpierw musisz zainstalować darmowy plugin WPCode. Instrukcje krok po kroku znajdziesz w naszym przewodniku jak zainstalować plugin WordPress.
Po aktywacji przejdź do Fragmenty kodu » Dodaj fragment. Biblioteka WPCode zawiera już fragment, który wyłącza XML-RPC. Możesz go znaleźć, wyszukując „xml”.
Po jego znalezieniu musisz kliknąć przycisk „Użyj fragmentu”.

Następnie musisz przełączyć przełącznik „Aktywny” na pozycję „Włączone”.
Na koniec upewnij się, że klikniesz przycisk „Zaktualizuj”, aby włączyć fragment na swojej stronie i wyłączyć API XML-RPC.

Metoda 3: Wyłącz XML-RPC w WordPress za pomocą wtyczki
Jest to prosta metoda, która może być użyta, jeśli nie chcesz dodawać żadnych innych modyfikacji do swojej strony internetowej za pomocą wtyczki z fragmentami kodu.
Po prostu zainstaluj i aktywuj wtyczkę Disable XML-RPC-API. Więcej szczegółów znajdziesz w naszym przewodniku krok po kroku na temat jak zainstalować wtyczkę WordPress.
Wtyczka działa od razu i natychmiast dezaktywuje XML-RPC.
Możesz przejść do XML-RPC Security » XML-RPC Settings, aby skonfigurować wtyczkę. Na przykład możesz zezwolić niektórym użytkownikom na dostęp do XML-RPC poprzez umieszczenie ich adresów IP na białej liście.

Testowanie, czy WordPress XML-RPC jest wyłączony
Teraz powinieneś sprawdzić, czy pomyślnie wyłączyłeś API XML-RPC na swojej stronie WordPress.
Możesz również sprawdzić, czy XML-RPC jest wyłączone, po prostu odwiedzając adres URL http://example.com/xmlrpc.php w swojej przeglądarce. Pamiętaj, aby zastąpić „example.com” nazwą domeny swojej witryny.
Jeśli XML-RPC jest wyłączone, powinieneś zobaczyć komunikat o błędzie: „Forbidden: You don’t have permission to access this resource.”
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak łatwo wyłączyć XML-RPC w WordPress. Możesz również zapoznać się z naszym przewodnikiem na temat jak łatwo dodawać JavaScript do WordPress oraz najlepszymi narzędziami do tworzenia stron WordPress.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.
Jiří Vaněk
Dziękuję za fragment. Ostatecznie wyłączyłem XML-RPC za pomocą WPCode, ponieważ wydawało się to najłatwiejszym sposobem, a także mogę łatwo przywrócić XML-RPC. Świetnie!
Pete Mason
w htaccess, linia:
allow from 123.123.123.123
wygląda na to, że chce być edytowana moim adresem IP. Ale nie jest to nigdzie podane —?
Christine
Czy jest różnica między wyłączeniem a zablokowaniem?
Wsparcie WPBeginner
Blokowanie próbowałoby ograniczyć dostęp do funkcji, podczas gdy wyłączenie całkowicie by ją wyłączyło. Jeśli ją wyłączysz, nie musiałbyś martwić się o dostęp do niej inną metodą.
Admin
Rashmi K
Zalecana wtyczka Disable XML-RPC nie była aktualizowana od 2 lat. Mówi, że wtyczka nie była testowana z ostatnimi 3 wydaniami WordPressa.
Wsparcie WPBeginner
W sprawie naszego stanowiska dotyczącego ostrzeżenia „nieprzetestowane”, zapoznaj się z naszym artykułem poniżej:
https://www.wpbeginner.com/opinion/should-you-install-plugins-not-tested-with-your-wordpress-version/
Admin
Nikhil
Cześć,
Czy wyłączenie dostępu do xmlrpc.php wyłączy również dostęp do API WordPress używanych do tworzenia aplikacji na Androida/iOS?
Wsparcie WPBeginner
Zależałoby to od API używanego przez same aplikacje.
Admin
Vyom
Znaleziono rozwiązanie:
Dodanie następujących informacji w konfiguracji nginx:
# blok nginx dla żądań xmlrpc.php
location /xmlrpc.php {
deny all;
}
Vyom
Używam nginx zamiast Apache. Czy nadal mogę używać pliku .htaccess na mojej stronie?
I czy muszę przechowywać ten plik w katalogu public_html, czy poziom wyżej?
Wsparcie WPBeginner
Jeśli używasz nginx, nie będziesz mógł używać htaccess
Admin
Vyom
Dzięki za odpowiedź. Czy istnieje alternatywa dla nginx?
Wsparcie WPBeginner
Dodałbyś wtyczkę specyficzną dla witryny lub wtyczkę z wcześniejszej części artykułu.
Chinecherem Somto
Cześć, czy to w pliku .htaccess w głównym katalogu strony mam wkleić kod?
Wsparcie WPBeginner
Yes, the .htaccess in your site’s root folder is where you would add the .htaccess code
Admin
Mojtaba Rezaeian
Dziękuję autorze.
Wsparcie WPBeginner
You are welcome Mojtaba
Admin
Bapi
Jak używać wielu adresów IP lub zakresu adresów IP, takiego jak 123.123.123.1, 2, 3, …… 100,101
malcolm
dlaczego mielibyśmy zezwolić na 123.123.123.123 ?
Jeśli w ogóle nie korzystamy z usługi, dlaczego nie pozwolić, aby „odmów wszystkim” było absolutne?
Edward
Jeśli dobrze rozumiem kod;
order deny,allow – umieszcza deny przed allow, ponieważ deny jest „wszystko”, więc allow nie jest przetwarzane
deny from all – robi to, co mówi
allow from 123.123.123.123 – jest symbolem zastępczym
Zakładam, że jeśli masz stały adres IP, możesz zmienić kolejność na „allow,deny” i zastąpić 123.123.123.123 swoim adresem IP. Pozwoliłoby to na Twój adres IP, a następnie odmówiło wszystkim innym.
David Hoy
Thanks WP-Beginner, I’m trying to be baddest WP boy in my neighbourhood and this is exactly why I keep coming back to you guys, each question I have you say; here is the easy way, and here is the RIGHT way
Ja i mój plik .htaccess odbędziemy krótką rozmowę na temat htpasswrd i tej całej rzeczy z XMLRPC, której moi klienci nigdy nie będą potrzebować.
Wszyscy sprawiliście, że mój zakątek sieci stał się odrobinę bezpieczniejszy, jak powiedziałby MailChimp: Wysokie piątki!
Wsparcie WPBeginner
Cześć David,
Thanks for the kind words. We are glad you find WPBeginner helpful
Admin
Cezar
Ok, użyję tego kodu, ale chcę, żeby IFTTT działało na mojej stronie, co muszę dodać?
# Blokuj żądania WordPress xmlrpc.php
order deny,allow
deny from all
allow from 123.123.123.123
PhilB
Cześć,
Postępowałem zgodnie z instrukcjami, aby zablokować plik xmlrpc.php za pomocą .htaccess, ale nie jestem pewien, czy działa.
Używam wtyczki Wordfence Security i w widoku ruchu na żywo widzę, że żądania do pliku xmlrpc.php ustały, ale jeśli sprawdzę moje logi dostępu
tail -f /apache2/logs/access_log
Nadal widzę przychodzące żądania, ale kod na końcu zmienił się z 500 na 403. Obawiam się, że otrzymuję fałszywy raport z mojej wtyczki WordFence i że nadal jestem zalewany spamem. Czy ktoś może doradzić?
Dzięki,
PhilB
David Hoy
Och tak! To działa idealnie, Twoje XMLRPC jest ZABRONIONE!
Kod statusu HTTP 403: Serwer zrozumiał żądanie, ale odmawia jego autoryzacji.
Raymundo
Mam dziwny problem…
Używałem moich blogów WordPress z IFTTT i wszystko działało dobrze, dopóki nie zintegrowałem ich z MaxCDN; IFTTT natychmiast przestało działać. Zrobiłem trochę badań i problem może być związany z dezaktywowanym XML-RPC.
Kiedy sprawdzam mój pulpit w „Ustawienia” > „Pisanie”, nie widzę niczego takiego jak XML-RPC, Publikowanie zdalne itp. Sprawdziłem bazę danych w opcjach, również xml-rpc nie jest dostępny / brak.
Muszę aktywować XML-RPC, aby moje IFTTT działało.
Jak ponownie aktywować XML-RPC; wszystko, czego potrzebuję, to skrypt, który mogę dodać do .htaccess lub functions.php, aby aktywować XML-RPC.
I dlaczego brakuje mi funkcjonalności XML-RPC w moim panelu.
Dziękuję!
Muhammad Ammar Ashfaq
Szukałem sposobu na dodanie tego pliku xmlprc.php do mojego wordpressa, używam wersji 4.5.3 i trafiłem na tę stronę. Muszę dodać ten plik php, ponieważ po włączeniu jetpacka otrzymuję błąd site_inaccessible. Proszę powiedz mi, jak rozwiązać ten błąd, moja strona to
Wsparcie WPBeginner
Połącz się ze swoją stroną WordPress za pomocą klienta FTP lub Menedżera plików w cPanelu. W katalogu głównym Twojej witryny poszukaj pliku xmlrpc.php. Jeśli tam jest, spróbuj kroku 2. Jeśli go nie ma, pobierz świeżą kopię WordPress. Rozpakuj ją i prześlij plik xmlrpc.php z powrotem do katalogu głównego Twojej witryny.
Krok 2: Sprawdź plik functions motywu WordPress pod kątem kodu wyłączającego XML-RPC.
Krok 3: Sprawdź pliki .htaccess i wp-config.
Admin
omonaija
Proszę, co mogę zrobić, aby włączyć xmlrpc na mojej stronie? ponieważ nie mogę zalogować się za pomocą aplikacji mobilnej WordPress na moim smartfonie..
Wsparcie WPBeginner
Jeśli używasz wtyczki bezpieczeństwa na swojej stronie WordPress, sprawdź jej ustawienia.
Admin
Mook
Booyah! Ten filtr WP naprawił atak skryptowych dzieciaków. Nadal zablokowałem tę osobę w firewalu, ale nie muszę już pilnować logów jak sęp, aby dodawać kolejne IP do firewala. DZIĘKUJĘ.
Wsparcie WPBeginner
Dlatego używamy Sucuri.
Admin
Alex
Czy to dlatego, że Sucuri działa jak wtyczka Disable XMLRPC?
Jeśli tak, mogę usunąć moją wtyczkę Disable XMLRPC,
Dzięki
Alex
Wsparcie WPBeginner
Sucuri działa jak zapora sieciowa między Twoją witryną a użytkownikami. Blokuje wszelkie podejrzane działania, zanim dotrą one do Twojej witryny.
Chad
Jestem całkowicie za wyłączeniem xmlrpc.php na całym serwerze w moim pliku /etc/httpd/conf/includes/pre_main_global.conf. Ale pozostaje mi pytanie… czy jest sposób, aby określić, że dany wtyczka „POTRZEBUJE” xmlrpc.php do działania? Obawiam się, że zablokowanie do niego dostępu może spowodować problem za 2 miesiące i nie będę wiedział, że problemem jest to, że wcześniej zablokowałem xmlrpc.php.
Czy są jakieś powszechne oznaki, na które należy zwrócić uwagę w pliku dziennika lub podobnym, które wskazywałyby na blokadę xmlrpc.php jako przyczynę?
Soumitra
Cześć, właśnie zainstalowałem wtyczkę , Wyłącz XML-RPC
Zobaczmy!
Phranq
Cześć, używam aplikacji WordPress do publikowania za pomocą mojego smartfona z Androidem. Teraz nie mogę się zalogować, a moje dane logowania są poprawne. Odpowiedź, którą otrzymałem, brzmiała: „nie możemy Cię zalogować, nie udało się połączyć z witryną WordPress”. Czy możesz mi pomóc naprawić ten błąd logowania do aplikacji WordPress.
Wsparcie WPBeginner
Jeśli wyłączyłeś XML RPC, możesz nie być w stanie zalogować się za pomocą aplikacji mobilnej WordPress. Sprawdź plik functions.php swojego motywu pod kątem tego kodu
add_filter('xmlrpc_enabled', '__return_false');1-click Use in WordPress
Jeśli tam jest, musisz go usunąć. Możesz również spróbować dezaktywować wtyczki i włączać je pojedynczo, aż znajdziesz wtyczkę, która uniemożliwia Ci logowanie za pomocą aplikacji mobilnej WordPress.
Admin
Josiah
Warto zauważyć, że „allow from 123.123.123.123” jest opcjonalne i jeśli jest używane, powinno zostać zaktualizowane, aby uwzględnić Twój adres IP lub adres IP urządzenia, które potrzebuje dostępu do xmlrpc.php (dobrze byłoby podać przykłady w tym artykule).
Natalie
Używam wtyczki GoodbyeCaptcha do wyłączenia XML-RPC i działa bez problemu, gdy Jetpack jest aktywowany.
Mam nadzieję, że pomoże
ATI
Przepraszam, próbowałem tej metody wiele razy. Nie zadziałała u mnie – w rzeczywistości spowodowała awarię frontendu (blokując odwiedzającym dostęp do strony internetowej) po dodaniu tych kodów do pliku .htaccess.
Gretchen Louise
Czy wyłączenie go w ten sposób zapobiega temu problemowi? http://theaffluentblogger.com/operating-a-website/wordpress-xmlrpc-php-vulnerability-affects-shared-hosting-sites/ Mam przyjaciółkę, której strona ciągle się zawiesza z powodu ataków na jej plik xmlrpc.php.
Personel redakcyjny
Tak, w pewnym stopniu zapobiegnie to atakowi.
Admin
Christopher Ross
Keith, w WordPressie panuje trend przenoszenia funkcji niezwiązanych z motywem z pliku functions.php do „wtyczki specyficznej dla witryny”, czyli w zasadzie wtyczki, którą aktywujesz tylko na jednej unikalnej stronie internetowej i która przechowuje funkcje niezwiązane z motywem dla tej witryny.
Tego samego można dokonać, umieszczając kod w pliku functions.php.
Keith Davis
Dzięki Chris
Wygląda na to, że już to omówiliście.
https://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/
BTW – co się stało z waszym systemem komentarzy?
Kiedyś był to Livefyre, potem coś związanego z Twitterem i Facebookiem, a teraz?
Keith Davis
Cześć wszystkim
Przepraszam, że jestem trochę tępy, ale czy moglibyście rozwinąć… „Wszystko, co musisz zrobić, to wkleić poniższy kod do wtyczki specyficznej dla witryny:”
Które wtyczki są specyficzne dla strony?