Od samego początku WordPress istniały funkcje, które pozwalają na zdalną interakcję z Twoją witryną. Te same funkcje budują twoją społeczność, umożliwiając innym blogerom odwoływanie się do Twoich postów. W centrum tego wszystkiego jest XML-RPC.

XML-RPC, lub XML Remote Procedure Call, zasila te funkcje w WordPress:

  • Łączenie się z witryną za pomocą smartfona
  • Trackbacks i pingbacks, gdy inne witryny odnoszą się do twojej witryny
  • Jetpack

Ale jest problem z XML-RPC, który musisz rozwiązać, aby zabezpieczyć swoją witrynę WordPress.

Co to jest XML-RPC i w jakim celu się go stosuje?

We wczesnych dniach blogowania (na długo przed powstaniem WordPressa) większość pisarzy w Internecie nadal korzystała z połączeń dial-up do surfowania po Internecie. Trudno było pisać posty i je podnosić. Rozwiązaniem było napisanie na komputerze offline i skopiowanie / wklejenie prozy, a może grafiki lub dwóch na swoim blogu. Ludzie, którzy używali edytora tekstu, uznali tę metodę za nieco kłopotliwą, ponieważ ich tekst często miał dołączone obce kody, nawet jeśli zapisałeś dokument jako HTML.

Blogger stworzył interfejs programowania aplikacji (API), aby umożliwić innym programistom dostęp do blogów blogerów. Wejdź do klienta bloga offline, który umożliwiał użytkownikom wpisywanie postów offline, a następnie łączenie się z blogami obsługującymi interfejs API Bloggera za pośrednictwem XML-RPC. W ślad za tym poszły inne systemy blogowania i ostatecznie powstał MetaWeblogAPI, który standaryzował podstawowy dostęp.

Skacząc do przodu około dekady, dziś wszyscy używamy aplikacji na naszych telefonach i tabletach zamiast na komputerach. Jedną z rzeczy, które ludzie lubią robić ze swoimi telefonami, jest publikowanie na swoich stronach WordPress. W latach 2008-2009 Automattic stworzył aplikacje WordPress dla praktycznie każdego mobilnego systemu operacyjnego (nawet Blackberry i Windows Mobile).

Aplikacje te pozwoliły, poprzez interfejs XML-RPC, na korzystanie z WordPress.com poświadczenia, aby zalogować się do dowolnej witryny WordPress, do której miałeś prawa użytkownika.

Dzieje się tak za pomocą zdalnych wywołań procedur – to jest skrót RPC.

A teraz powinieneś myśleć: “o nie. Co się stanie, jeśli ktoś inny otrzyma moje hasło?”Odpowiedź nie jest ładna: “ktoś inny” może zrobić wszystko, co możesz zrobić na swojej stronie. Ponieważ, oczywiście, są one skutecznie Ciebie. Masz już mdłości?

Więcej złych wiadomości: Jeśli używasz Jetpack do korzystania z jego wspaniałych narzędzi na własnej hostowanej stronie, kilka z tych cudów używa również XML-RPC.

Historia: czy XML-RPC powinien zostać czy wejść do WordPressa?

Obsługa XML-RPC jest częścią WordPressa od pierwszego dnia. Jeśli chcesz być wybredny, jest to część prehistorii WordPress; będąc częścią platformy b2, którą Matt Mullenweg rozwidlił, aby stworzyć WordPress.

WordPress 2.6 został wydany 15 lipca 2008 roku. Włącz XML-RPC został dodany do ustawień zdalnego publikowania WordPress, z domyślnym ustawieniem ustawionym na ” Off.”

Tydzień później została wydana aplikacja WordPress na iPhone ‘a, a jej użytkownicy zostali poproszeni o odwrócenie ustawienia na” Włącz.”

Cztery lata po tym, jak aplikacja iPhone dołączyła do rodziny, WordPress 3.5 domyślnie włączył obsługę XML-RPC i zabrał ustawienie Pulpitu nawigacyjnego.

I tak zostało.

Główne słabości związane z XML-RPC to:

  • Ataki Brute force: Atakujący próbują zalogować się do WordPress za pomocą xmlrpc.php z dowolną liczbą kombinacji nazwy użytkownika / hasła. Metoda w xmlrpc.php pozwala atakującemu na użycie jednego polecenia (system.multicall), aby odgadnąć setki haseł. Daniel Cid z Sucuri opisał to dobrze w październiku 2015 roku: “przy zaledwie 3 lub 4 żądaniach HTTP, atakujący mogli wypróbować tysiące haseł, pomijając narzędzia bezpieczeństwa, które są zaprojektowane tak, aby wyglądać i blokować próby brutalnej siły.”
  • Ataki typu Denial of Service poprzez Pingback: W 2013 r. napastnicy wysyłali żądania Pingbackowe za pośrednictwem xmlrpc.php około 2500 witryn WordPress do “stada (tych witryn) w dobrowolny botnet”, według Gur Schatz at Incapsula. “Daje to każdemu atakującemu praktycznie nieograniczony zestaw adresów IP do dystrybucji ataku typu odmowa usługi w sieci ponad 100 milionów witryn WordPress, bez konieczności ich narażania.”

Wygoda vs bezpieczeństwo WordPress, po raz kolejny

I znowu to samo. Współczesny świat jest głęboko irytujący swoimi kompromisami.

Jeśli chcesz się upewnić, że nikt nie przynosi bomby w samolocie, musisz stanąć w kolejce, aby przejść przez wykrywacze metali. Jeśli chcesz zatrzymać samochód podczas zakupów, zamknij drzwi i zamknij okna. Nie możesz użyć [email protected], aby zablokować swoją witrynę. Zwłaszcza jeśli lubisz używać Jetpack lub aplikacji mobilnych.

Co mogę zrobić z zabezpieczeniami XML-RPC?

Zrozum, że problem bezpieczeństwa nie jest tak naprawdę samym XML-RPC, problem polega na tym, że atakujący mogą użyć tego jako innego sposobu na brutalne wymuszenie przejścia do Twojej nazwy użytkownika i hasła. Najlepszym sposobem na ochronę siebie jest (nadal) używanie długich, skomplikowanych haseł (lub użycie Menedżera haseł, który może je dla Ciebie utworzyć). Ale nie zawsze jest to łatwe, szczególnie jeśli angażujesz się w WordPress za pośrednictwem kilku różnych komputerów.

Następną najlepszą rzeczą, jaką możesz zrobić, aby chronić się dzisiaj, jest całkowite wyłączenie XML-RPC w Ustawieniach. Kilka dodatków do twojego .plik htaccess może zablokować dostęp do xmlrpc.plik php. Oto jak to zrobić.

Uwaga: Sprawdź u swojego hosta zasady dotyczące tworzenia i edycji użytkowników .htaccess przed dokonaniem zmian.

  • Sprawdź, czy istnieje .plik htaccess. Dokumentacja hosta internetowego może wskazywać właściwy kierunek. Jeśli żaden nie istnieje, utwórz plik w folderze htdocs/wordpress.
  • Otwórz plik w edytorze tekstu i dodaj następujący kod u góry:
Wczytywanie gist raewrites / 5d662cda874fcc8a8850b16b8df0e5dd

Możesz uprościć ten proces, instalując i aktywując wtyczkę Disable XML-RPC.

Wyłączanie xmlrpc.php wyłącza każde narzędzie, które używa tego pliku. Nadal możesz korzystać z WordPress na telefonie lub tablecie. Zamiast aplikacji mobilnych możesz

Częściowe wyłączenie XML-RPC w WordPress

Staliście się więc zależni od wszystkich tych narzędzi, które są z kolei zależne od XML-RPC. Naprawdę rozumiem, że nie chcesz wyłączyć XML-RPC, nawet na chwilę.

Oto kilka wtyczek, które mogą pomóc:

  • Zatrzymaj atak XML-RPC: Pozwala tylko Jetpack i innym narzędziom automatycznym na dostęp do xmlrpc.PHP przez.htaccess.
  • Control XML-RPC Publishing: po prostu przywraca starą opcję zdalnego publikowania do Ustawienia > Pisanie menu.
  • iThemes Security, Anti-Malware Security i Brute-Force Firewall i wszystko w jednym WP Security & Firewall: Te narzędzia bezpieczeństwa ogólnego przeznaczenia obejmują ochronę brute-force w swojej darmowej warstwie. Obserwują powtarzające się próby logowania, z lub bez xmlrpc.php i ban witryn, które wydają się próbować się włamać. Od kilku lat z powodzeniem korzystam z narzędzia iThemes.

Zauważę, że jedna z głównych wtyczek bezpieczeństwa, Wordfence, zdecydowała się wyłączyć XML-RPC. W poście na blogu mark napisał:

Dla nas wyłączenie XML-RPC wiąże się z kosztami. Wyłączasz główne API w WordPress. Krótko podaliśmy tę funkcję,ale usunęliśmy tę funkcję, ponieważ poprawiła się zapobieganie nadużyciom API WordPress. Co więcej, zapewnienie możliwości wyłączenia XML-RPC spowodowało zamieszanie wśród użytkowników, gdy ich Aplikacje się zepsuły, ponieważ nie mogli uzyskać dostępu do API.

Odpoczynek (i OAuth) na ratunek

Teraz możesz już wiedzieć, że programiści rdzeni WordPress zamieniają kod WordPress w aplikację REST. Programiści z zespołu REST API mieli pewne problemy z przygotowaniem, w tym z częścią uwierzytelniania mającą na celu rozwiązanie problemu XML-RPC. Kiedy to się wreszcie stanie (obecnie planowane dla wersji 4.7 pod koniec 2016 roku), nie będziesz musiał używać XML-RPC do korzystania z aplikacji mobilnych lub Jetpack.

Zamiast tego uwierzytelniasz się w zewnętrznych aplikacjach za pośrednictwem protokołu OAuth. Możesz nie wiedzieć, czym jest OAuth, ale jeśli kiedykolwiek kliknąłeś przycisk Twittera w poście, użyłeś OAuth.

Po kliknięciu przycisku udostępniania społecznościowego pojawia się bezpieczny ekran HTTPS z prośbą o identyfikację na Twitterze, Facebooku, LinkedIn lub kogokolwiek innego. Wprowadź swoją nazwę użytkownika i hasło dla tej witryny i możesz udostępnić ten post. Właściciel witryny WordPress nie zna hasła witryny społecznościowej i nikt nie może przechwycić tych danych podczas ich wysyłania.

Następnie aplikacja społecznościowa umieszcza w przeglądarce plik cookie z kluczem i tajemnicą, który pozwala zdalnej witrynie połączyć się przez określony czas. W takim przypadku nie musisz wpisywać swoich danych uwierzytelniających przez cały okres istnienia tego pliku cookie.

Oto dlaczego OAuth jest lepszy, bezpieczniejszy i wspanialszy niż XML-RPC: zasadniczo nie musisz udostępniać swojego hasła w postaci zwykłego tekstu przez Internet, aby Twoja aplikacja mobilna mogła połączyć się z Twoją witryną.

Zespół REST API pracuje nad “”brokerem uwierzytelniania”, który umożliwi połączenia z dowolną liczbą witryn WordPress.

Testowanie REST API WordPress

Jak powiedziałem wcześniej, REST API nie jest jeszcze zintegrowany z rdzeniem WordPress i nie będzie przez miesiące. Dziś możesz zacząć grać z nim na swoich stronach nieprodukcyjnych. Aby to zrobić:

  1. Dowiedz się więcej o REST API (i o tym, jak może to zmienić WordPress na zawsze) od Toma Ewera.
  2. Przeczytaj uważnie artykuł Daniela Pataki, jak korzystać z API WordPress (i firm już z niego korzystających).
  3. Przeczytaj post Joe Hoyle ‘ a przedstawiający brokera uwierzytelniania.
  4. Pobierz i zainstaluj najnowszą wtyczkę REST API z WordPress.org
  5. Poświęć trochę czasu dokumentacji REST API, aby dowiedzieć się, jak to działa.
  6. Zainstaluj wtyczkę OAuth v1 z GitHub.
  7. Zainstaluj wtyczkę brokera uwierzytelniania z GitHub
  8. Utwórz aplikację z domyślnym brokerem.

W międzyczasie musisz podjąć własne decyzje dotyczące kontinuum kompromisu wygody / bezpieczeństwa.

Czy zastanowiłeś się nad XML-RPC na swojej stronie? Czy doświadczyłeś problemów z bezpieczeństwem związanych z XML-RPC? Podziel się swoimi przemyśleniami w komentarzach poniżej.

Tagi:

You May Also Like

Jak naprawić nieprawidłowy błąd JSON w WordPress (Przewodnik dla początkujących)

W artykule: Co powoduje błąd “nieprawidłowa odpowiedź JSON” w WordPress?1. Sprawdź adresy…

Jak naprawić błąd krytyczny w WordPress (krok po kroku)

W artykule: Co To jest błąd krytyczny w WordPress?Co powoduje krytyczny błąd…

Jak zmienić kolor linku w WordPress (poradnik dla początkujących)

W artykule: Dlaczego Linki Są Ważne?Jak dodawać linki w postach i stronach…

9 Najlepsze Darmowe Wtyczki WordPress Author Bio Box

W artykule: 1. Simple Author Box2. Branda3. Autor postu WP4. Author Bio…