Mi az az XML-RPC? Hogyan védjük és mikor kapcsoljuk, blokkoljuk?

Mi az az XML-RPC? Hogyan védjük és mikor kapcsoljuk, blokkoljuk?

Mi az az XML-RPC? Hogyan védjük és mikor kapcsoljuk, blokkoljuk? 900 379 Rottenbacher Tamás
Az XML-RPC az alap WordPress rendszer része, mely többféle, rendszerek közötti kommunikációt tesz lehetővé. Azonban a WordPress honlapok többségének nincs rá szüksége és egyes esetekben akár problémát is okozhat, veszélyforrás lehet. Ezért megmutatok több megoldási lehetőséget, amik segítségével könnyedén megoldható és nullára csökkenthető az XML-RPC által fennálló biztonsági kockázat és bot-ok általi fölösleges terhelés.

Mi az az XMP-RPC?

Az XMP-RPC egy XML formátumú távoli meghívási protokoll. Oké, ennek a mondatnak vagy egyszerűbb megfogalmazása is. Ennek segítségével tudunk a WordPress-nek távolról adatokat, utasításokat adni – fogadni, xml formátumban és a curl-et is igényli a működéshez. Ez nem csak a WordPress-ben található, csupán a WP-be is bekerült.

Mit jelent ez egy általános WordPress honlapnál?

Ha csak nem használunk külső API-n vagy közvetlenül XML-RPC -t használó alkalmazást (pl. raktárkészlet kezelő WooCommerce-hez, tömeges oldalkezelő, mobiltelefonos WP menedzselő és hasonló) akkor erre semmi szükségünk sincs és teljesen nyugodtan kikapcsolhatjuk, letilthatjuk. Ezen protokollon keresztül ha nem vigyázunk, akkor hozzászólásokat is tudnak beküldeni.

A JetPack bővítmény használja az XML-RPC kommunikációt, így ha az van, akkor ne tiltsuk, ne kapcsoljuk ki.

Régebben az XML-RPC szerepe fontosabb volt. A külső, adat és hírgyűjtő oldalak irányába ilyen ping-el lehetett tudatni, hogy friss tartalom került fel blogunkra, honlapunkra. Ma már ennek a szerepét a Google News elég jelentősen átvette.

Maga az XML-RPC szerepét fokozatosan felváltja a JSON adatátadási módszer, azonban még jó ideig velünk fog maradni, így érdemes kezdeni vele valamit, nem hagyni kiskaput a honlapunk piszkálására.

what is xml rpc

Az XML-RPC működését bemutató ábra. Forrás: bestwebsoft.com

Mi a gond az XMP-RPC -vel?

Miként távoli utasításokra alkalmas, így előszeretettel próbálkoznak rajta keresztül támadó robotok. Ez akkor fog problémát jelenteni, ha ezek a próbálkozások nagyon megszaporodnak. Ilyenkor lassul weboldalunk, hiszen a robotok lekötik a szerver teljesítményének egy részét. Olcsóbb osztott tárhely esetén ez jelentős, érezhető problémát okozhat.

xml rpc bot probalkozasok

Az egyik szerveren próbálkoznak. Rá pár percre a tűzfal már blokkolta és új szabályokkal már nem fogják tudni újra megpróbálni.

Hogyan védjük, kapcsoljuk ki?

A legjobb megoldás, ha a tárhely szolgáltatónk tűzfala ezeket a bot-okat eleve megszűri. Persze sok hosting ezeket nem állítja be eleve, hozzáférést pedig ezekhez nem adnak (Ezt megértem miért nem adnak hozzáférést) és így alternatív megoldásokból kell választanunk. Jó hír, hogy több lehetőségünk is van rá, nézzük is.

Domain szinten blokkolni Cloudflare-el

Amennyiben rendelkezünk Cloudflare fiókkal és ott kezeljük a domain nevünket, van lehetőségünk egyedi tűzfalszabályt beállítani, ráadásul elég részletesen.

  • Lépjünk be a Cloudflare fiókunkba és menjünk a domain-ünkre
  • Firewall menüpontra menjünk, majd azon belül Firewall Rules
  • Kattintsunk arra, hogy „Create a Firewall rule”
  • Adjunk meg egy nevet (1), például wp-xmlrpc-blokk
  • Válasszuk ki az URI-t (2), az operátor legyen a contains (3)vagy is: tartalmazza a következőt, majd adjuk meg az /xmlrpc.php fájlnevet (4)
  • Válasszuk ki, hogy milyen válaszreakciót kapjon (5) a próbálkozó. Lehet Javascript-es szűrést, a Captcha-t vagy teljes blokkolást választani, azonban ha nem használjuk akkor nyugodtan Block, majd jobb alul Deploy / Save gomb
  • Várjunk 30 másodpercet, majd próbáljuk a weboldalunkcime.hu/xmlrpc.php -s címet megnyitni.
cloudflare tuzfal szabaly hozzadasa

A fenti pontok sorrendje látható a Cloudflare felületéről készült képernyőmentésen.

cloudflare tuzfal mini stat

Néhány óra alatt jó pár próbálkozást megfogott és lankadt a botok lendülete, mint a kis grafikonon látható.

Htaccess szabállyal

A legtöbb tárhelyen van lehetőségünk .htaccess fájl használatára. A legelső sor elé tegyük be az alábbi kódot:

Funkciós filterrel

A WordPress esetén a saját sablonunk functions.php fájlának 1 soros kiegészítésével is kikapcsolhatjuk. Arra azonban ügyeljünk, hogy sabloncserénél ezt a sort az újhoz is adjuk hozzá. Ne maradjon el a biztonsági mentés készítés mielőtt módosítanánk bármilyen fájlt!

add_filter( 'xmlrpc_enabled', '__return_false' );

Bővítménnyel, plugin-al

Mivel WordPress-ről beszélünk, így mindenre is van bővítmény, erre is természetesen, ráadásul több közül is választhatunk. Elsődlegesen annak vagyok a híve (és azt tanácsolom), hogy amit lehet ne bővítménnyel oldjunk meg. A legjobb megoldás bemutatásával kezdtem (Cloudflare) és direkt a végére hagytam a plugin megoldást. Ez is jó, azonban ha tudjuk, válasszuk a fentiek egyikét inkább. Néhányat xml-rpc blokkoló bővítményt felsorolok:

  • Sucuri Security (https://wordpress.org/plugins/sucuri-scanner/)
  • Wordfence (https://wordpress.org/plugins/wordfence/)
  • Disable XML-RPC-API (https://wordpress.org/plugins/disable-xml-rpc-api/)
Rottenbacher Tamás

2006 óta foglalkozok weboldal készítéssel és 2007 óta keresőoptimalizációval. WordPress honlapokat 2008 óta készítek. Ha kérdezne írjon hozzászólást vagy email-t a "Kapcsolat" menüpontban.

Közösségi profiljaim:

Honlapunk cookie fájlokat használ, hogy jobb böngészési élményt biztosíthasson és forgalom mérést végezzen.