Ve většině případů na XMLRPC u WordPressu nenarazíte – zpravidla poprvé v okamžiku, kdy budete chtít zprovoznit mobilní aplikaci a ta se odmítne připojit a jako důvod uvede chybu 403 a zkratku XMLRPC.
XMLRPC je protokol umožňující napojení na web na WordPressu a přes API poté s webem pracovat – vkládat, opravovat, mazat články, stránky, média, komentáře, šablony, uživatele, pluginy a nastavení webu (detailně v XML-RPC WordPress API).
Zpravidla se to používá přes mobilní aplikaci či desktopového klienta (viz například Proč je dobré mít na tabletu (či mobilu) aplikaci od WordPressu?) ale má řadu dalších možností využití.
XMLRPC je na WordPress.com automaticky funkční, ale pokud budete mít vlastní hosting, tak může být zakázáno pravidly v .htacess (ale o tom až dále) nebo jinak blokováno vaším hostingem (ale o tom také až dále). Už pár let není v nastavení WordPressu možnost zapnout/vypnout, jak tomu bylo dříve.
Je XMLRPC bezpečné?
XMLRPC je tak bezpečné, jak jsou bezpečná hesla uživatelů, kteří by se mohli přes XMLRPC přihlásit. Je to stejné přihlášení, jako když se přihlašují přes web, takže v tom není rozdíl. Tedy až na to, že na XMLRPC nemůžete přidat dvoufaktorové ověření, kterým můžete chránit přihlášení klasické. A je nutné mít jistotu, že nikde není používáno bez https.
Před lety bylo XMLRPC děravé, takže se mohlo stát nástrojem útoku, ale totéž je pravda o celém WordPressu, pluginech či šablonách. Vždy se může objevit bezpečnostní chyba.
Máte XMLRPC povolené a přemýšlíte nad zákazem? Klidně můžete (přes .htaccess nebo pluginem, viz dále), zlepší to bezpečnost (odstraněním jedné možné cesty jak dovnitř). Ale žádný extra zásadní důvod k tomu není, byť o kousek dál u pingback je něco k zvážení.
Jedna z nevýhod XML RPC oproti novějšímu REST API ale zůstává – přihlášení je klasicky jménem a heslem (REST API používá bezpečný OAuth) a snadno se tak dá zneužívat pro brute force útoky
Konečné doporučení tedy je – pokud XMLRPC nepotřebujete nutně, tak ho mějte zakázané. Sice tím přijdete o možnost používat aplikaci WordPressu, ale nic vám nebrání přistupovat klasicky přes web – funguje to velmi dobře.
K čemu XMLRPC slouží?
K výše uvedenému použití v aplikacích WordPressu – mobilní i desktopové. Pokud nic z toho neplánujete používat, tak nemusíte XMLRPC mít povolené.
JetPack plugin používá XMLRPC pro některé pokročilejší funkce, ale žádná z nich není v neplacené podobě – bude dobře fungovat i bez XMLRPC. Navíc by JetPack měl snad už přejít na REST API.
Pro pingback/trackback funkčnost mezi vaším webem a dalšími blogovacími platformami. Co navíc, tuhle funkčnost rozhodně nechcete mít povolenou (slouží k přidávání komentářů). Zakázat samostatně pingbacky můžete přes plugin Disable XML-RPC Pingback plugin
Právě pingback funkčnost se ale (přes XMLRPC) používá pro DDoS – snadno se tím zahlcuje server, bez ohledu na to, jestli se výsledný pingback někam ukládá.
TIP: Bezpečnostní pluginy, jako například WordFence, umí pracovat i s útoky na XMLRPC. Takže vůbec neváhejte si je pořídit
Jak XMLRPC zakázat
Nejjednodušší způsob zákazu XMLRPC je .htaccess (v rootu vašeho webu) a něm následující
# START XML RPC BLOCKING
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# FINISH XML RPC BLOCKING
Uvedené zakáže kompletně přístup k xmlrpc.php – pokud byste chtěli, můžete upravit povolením z určitých (vašich, bezpečných) IP adres.
Pokud nemůžete opravovat/vytvářet .htaccess můžete využít plugin Disable XML-RPC plugin – nainstalujte a aktivujte pro zákaz, deaktivuje pro povolení.
Případně pokročilejší REST XML-RPC Data Checker plugin kde je možnost zakazovat a povolovat i další věci či různé funkčnosti (včetně pingbacků). Chcete-li něco opravdu užitečného a pokročilejšího, tak toto je ta lepší varianta.
Pokud si WordPress sami programujete, tak je dobré vědět, že XMLRPC je možné zakázat následujícím filtrem:
add_filter( 'xmlrpc_enabled', '__return_false' );
Což mimo jiné znamená i to, že vaše šablona může mít možnost povolení/zakázání XMLRPC. Ale nebývá to časté.
XMLRPC je navíc možné zakazovat v konfiguracích HTTP serverů – a to váš hosting mohl udělat za vás. V případně nefunkčnosti tedy ověřujte i tam.
Jak ověřit, jestli mám XMLRPC funkční?
Snadno, zkuste otevřít vášserver/xmlrpc.php – pokud vrátí 403 nebo nějakou jinou chybu (například “Missing index page or access denied!”), tak je XMLRPC zakázané. Pokud vrátí XMLR-PRC server accepts POST request only, tak je XMLRPC povolené.
Nezapomeňte, že do XMLRPC se může “míchat” i některý z bezpečnostních pluginů – WordFence má například v nastavení i věci týkající se právě XMLRPC.
Další tipy týkající se WordPressu
-
TIP#3228: Co byste po instalaci WordPressu měli smazat či změnit? Další soubory
O install.php už byla řeč v samostatném tipu (Co byste po instalaci WordPressu měli smazat či změnit? install.php – pozor ať nedopadnete špatně), ale to zdaleka není vše, co je vhodné po…
-
TIP#3201: WordPress Transients. Proč byste měli dávat pozor na další věc
Transienty jsou jednoduchý způsob, jak do WordPressu odložit výsledek nějaké nákladnější operace: například odpověď z externího API, složitý databázový dotaz, vygenerovaný seznam článků, statistiky nebo mezivýsledek z pluginu. Související příspěvky TIP#2304: Je…
-
TIP#2981: Jak v Uptime Kuma nastavit upozornění na výpadek e-mailem?
Provozuji pár serverů (jako třeba tenhle, 365tipů) a to jestli běží (a jak „rychle“ běží) si hlídám pomocí Uptime Kuma. Nejprve na QNAP NAS, později v Dockeru na RaspBerry Pi 5. Související…
-
TIP#2967: Proč nejít “blogovat” na Seznam Médium
Nedávno jsem s jedním klientem řešil otázku kde blogovat. Já doporučoval “na vlastním” jako ideální, a když už ne, tak něco jako Substack, kde to nic nestojí a je tam i hodně…
-
TIP#2957: Co když WordPress náhle začne místo článků (všech, ne jen některých) vracet chybu 404?
Zvláštní věc, která se mi stala už tuším víckrát. Na FeedIT.cz naposledy před pár dny. Náhle místo článků začal web vracet 404ky. Nedošlo k žádné aktualizaci, žádné změny v pluginech, prostě nic. …
-
TIP#2918: Jak z WordPressu smazat všechna média?
V rámci úklidu na rychlofky (#tyden) to nebylo jenom o smazání záplavy příspěvků, ale také prakticky všech médií (attachments), které ty příspěvky měly. Související příspěvky TIP#774: Má smysl si na WordPress.com zapínat…
-
TIP#2907: Jak ve WordPressu smazat velké množství příspěvků? Ideálně všechny?
V době kdy #tyden měl webovou verzi se na rychlofky.cz nashromáždilo dobrých 12 tisíc (velmi krátkých) příspěvků. Roky starých a také nenavštěvovaných, Google (vyhledávače) nemají rády krátké příspěvky a neumístí je do…
-
TIP#2871: WordPress a jak docílit toho, aby obrázky v příspěvcích měly stín?
Chcete trochu vylepšit příliš plochý design článků a svého webu na WordPressu? Můžete to udělat tak, že obrázky opatříte stínem. Budou vystupovat z jinak plochého článku a vylepší jeho čitelnost. Související příspěvky…
-
TIP#2807: Bit.ly zavádí reklamu a splash screen? Co s tím? Jak na vlastní zkracovač?
Bit.ly, jeden z mála původních a široce rozšířených zkracovačů adres (URI) za pár měsíců zavede zobrazování reklamy pro ty, kdo kliknou na bit-ly odkaz. Doposud to fungovalo aniž by kliknutí bylo jakkoliv…
-
TIP#2799: Sdílíte nějaký odkaz? Měli byste ho vyčistit od věcí, které tam nemají zůstat
Zapeklitá záležitost, něco jste si otevřeli na Internetu nebo v aplikaci a chcete to nasdílet pomocí odkazu (link). V mnoha případech se k odkazu samotnému přidá řada dalších zbytečných věcí. Někde, třeba…
-
TIP#2791: Mám na webu WordPress v “anglické” verzi, je bezpečné přeinstalovat (změnit) na cs_CZ (či opačně)?
Může se vám to stát velmi lehce a možná si toho ani nevšimnete. Máte českou verzi WordPressu a při některé z aktualizaci si nevšimnete, že vám vlastně nenabízí českou, ale anglickou. To…
-
TIP#2753: Proč mi aktualizace WordPressu cs_CZ (českého) nabízí aktualizace na en_US?
Právě teď je to aktuální. Objevil se WordPress 6.6 a pro všechny weby s cs_CZ to nabízí (a vlastně i dost vnucuje) aktualizaci na tuto verzi, jenže en_US. Související příspěvky TIP#3201: WordPress…
-
TIP#2733: Vývojová prostředí pro lokální vývoj pro WordPress (a webdesign vůbec)
Lokální vývojové prostředí vám umožní na vašem lokálním stroji mít vše co potřebujete pro provozování webu (s WordPressem, ale může to být i cokoliv jiného) – tedy web server (Apache, například), SQL…
-
TIP#2592: Ještě stále máte na webu Google AMP? Je to zlo, rychle s tím pryč
Je to vlastně už docela dlouho, co jsem na všech mých webech zrušil podporu Google AMP. Pak jsem delší dobu chtěl napsat tip tomu věnovaný, ale nějak to zapadlo v záplavě jiných…
-
TIP#2554: Potřebujete vyměnit obrázek v médiích na vašem WordPressu? Je nutné mít plugin
Jedna z věcí, kterou (neznámo proč) WordPress neumí přímo. Můžete nahrát média (obrázek, fotku, atd) ale když chcete nahrát upravenou verzi, tak to není možné. Přitom je to dost zásadní věc, kterou…


















