Zabezpečení

Jak bezpečně zakázat WordPress XML-RPC a ochránit web před útoky brute force

  • 14 min čtení
  • Tým Hostragons
Jak bezpečně zakázat WordPress XML-RPC a ochránit web před útoky brute force

Zakázání WordPress XML-RPC znamená zablokování vzdálených požadavků na soubor xmlrpc.php na vašem webu, čímž rychle snížíte počet pokusů o prolomení hesla metodou brute force, zneužití pingbacků a zbytečný botí provoz. Pokud nepoužíváte Jetpack, mobilní aplikaci WordPress, starší nástroje pro vzdálené publikování nebo speciální integrace založené na XML-RPC, je jeho deaktivace pro většinu WordPress webů bezpečným a efektivním krokem k posílení zabezpečení. Nejefektivnější je zablokovat požadavky ještě před spuštěním WordPressu na úrovni serveru – tedy pomocí pravidel pro Apache, LiteSpeed, Nginx nebo WAF. Toto řešení je obvykle výkonnější než deaktivace přes plugin.

V tomto průvodci najdete, proč je dobré XML-RPC zakázat, kdy ho naopak ponechat povolený a jak bezpečně provést blokaci na různých serverových platformách krok za krokem. Ať už běžíte na infrastruktuře Hostragons nebo jinde, cílem je minimalizovat útočné plochy bez narušení funkčnosti, šetřit serverové zdroje a nastavit spravovatelný bezpečnostní standard. Pokud hledáte rychlý a bezpečný základ pro váš WordPress web, WordPress hosting je součástí řešení.

Co je XML-RPC a k čemu slouží ve WordPress?

XML-RPC je starší protokol pro vzdálenou komunikaci mezi systémy, který umožňuje odesílání dat ve formátu XML přes HTTP. Ve WordPressu jej zajišťuje soubor xmlrpc.php v kořenovém adresáři. Historicky se používal pro publikování příspěvků z mobilní aplikace, správu komentářů na dálku, pingbacky a komunikaci s některými třetími službami.

V dnešní době se místo XML-RPC více používá REST API, takže význam XML-RPC postupně klesá. Soubor xmlrpc.php však zůstává v mnoha instalacích přístupný, což pro útočníky znamená snadno identifikovatelný a automatizovatelný cíl. Boty často prohledávají IP rozsahy a během minut mohou vyzkoušet xmlrpc.php i na nově aktivovaných doménách. Proto je důležité už při Dotaz na doménu promyslet bezpečnostní základy.

Kdy je XML-RPC stále potřeba?

XML-RPC nemusí být zbytečný pro všechny weby. Některé starší funkce Jetpacku, určité operace v mobilní aplikaci WordPress, automatizační služby nebo starší desktopové blogovací nástroje jej mohou vyžadovat. Také vlastní integrace na míru mohou používat xmlrpc.php pro vzdálené odesílání obsahu či získávání dat. Proto je před deaktivací vhodné zkontrolovat váš provozní scénář.

Jednoduchá kontrola: pokud obsah spravujete výhradně přes wp-admin, nepoužíváte Jetpack, nepublikujete přes mobilní aplikaci a nemáte vývojáře, který by XML-RPC integroval, pravděpodobně jej nepotřebujete. Většina firemních webů, blogů, katalogů, malých e-shopů a WooCommerce obchodů funguje bez problémů i s vypnutým XML-RPC. Jestliže máte kritické procesy jako platební brány nebo logistiku, změnu raději provádějte mimo špičku a nejdřív otestujte.

Proč je WordPress XML-RPC rizikový pro brute force útoky?

Brute force útok znamená automatické masivní zkoušení kombinací uživatelských jmen a hesel. Ve WordPressu se to většinou děje přes wp-login.php, ale XML-RPC může útočníkům nabídnout výhodnější cestu. Některé metody XML-RPC totiž umožňují provést více pokusů v rámci jednoho HTTP požadavku. Zvlášť funkce system.multicall může na špatně nastavených webech umožnit stovky pokusů s minimálním počtem viditelných požadavků.

Zatímco 500 pokusů přes wp-login.php znamená 500 samostatných požadavků, přes XML-RPC jich může být méně, což ztěžuje detekci útoku bezpečnostními pluginy nebo jednoduchým sledováním logů. Výsledkem je zvýšená zátěž na CPU, zahlcení PHP workerů, nadměrné dotazy do databáze a pomalejší odezva pro skutečné návštěvníky. Na sdíleném hostingu to kromě bezpečnostního rizika znamená i pokles výkonu.

Dalším rizikem je zneužití pingbacků. Pingback slouží k oznámení, že jiný web odkazuje na váš obsah, ale může být zneužit k vytváření DDoS útoků nebo k označování třetích stran jako cílů útoku. Deaktivací XML-RPC tedy nejen omezíte pokusy o přihlášení, ale snížíte i možnost tohoto zneužití.

Rychlé srovnání metod blokace XML-RPC

Rychlé srovnání metod blokace XML-RPC
MetodaÚčinnostVýkonKdo ji může použít?Na co si dát pozor
Blokace na úrovni serveru (pravidlo Apache, LiteSpeed, Nginx)Velmi vysokáNejlepšíVětšina webů na Apache, LiteSpeed, NginxChybné pravidlo může ovlivnit web, vždy zálohovat
Blokace přes WAF nebo bezpečnostní firewallVysokáVelmi dobráWeby s Cloudflare, WAF nebo hostingovou ochranouPravidlo musí cílit přesně na xmlrpc.php požadavky
Deaktivace pomocí pluginuStředníStředníUživatelé bez technických znalostíPožadavky stále dosáhnou WordPress, zátěž nekončí úplně
Zakázání přes kódové filtry v tématu nebo pluginuStředníStředníVývojáři s kontrolou nad tématem nebo vlastními pluginyVymizí při změně tématu, doporučuje se child theme nebo vlastní plugin
Pouze omezení počtu požadavků (rate limiting)StředníDobráWeby s částečnou potřebou XML-RPCNení tak spolehlivé jako úplné zablokování, správně nastavte limity

Jak vidíte, nejrychlejší a nejúčinnější je vypnout XML-RPC na úrovni serveru nebo WAF, pokud jej nepotřebujete. Pluginy jsou snadné, ale v případě silných útoků nemusí zátěž zcela eliminovat. U webů s velkým provozem, e-shopy nebo často napadaných stránkách by měla být priorita pravidla přímo ve webovém serveru.

Co zkontrolovat před začátkem

Při nastavování bezpečnosti platí základní pravidlo: nejdřív si vše změřte a připravte plán zálohy. Deaktivace XML-RPC je obvykle bezpečná, ale nikdy nezapomeňte na testy a nepouštějte se do změn naslepo. Následující seznam vám pomůže minimalizovat riziko problémů.

  • Mějte čerstvou zálohu souborů i databáze z posledních 24 hodin. Před aktualizací WordPressu, bezpečnostními úpravami nebo změnami pluginů je záloha nutnost.
  • Zkontrolujte, zda nepoužíváte Jetpack, mobilní aplikaci WordPress, vzdálené publikování nebo vlastní integrace závislé na XML-RPC.
  • Prohlédněte přístupové logy na počet požadavků na xmlrpc.php. Pokud vidíte desítky či stovky za minutu, může jít o útok.
  • Změnu provádějte v době nízkého provozu. U WooCommerce otestujte poté funkčnost košíku, plateb a přihlašování.
  • Mějte připraven způsob, jak pravidlo rychle odebrat nebo zakomentovat – přes správce souborů, FTP či SSH.

Profesionální hostingové prostředí s pravidelnými zálohami, aktuální verzí PHP, izolovanými účty a firewallovou ochranou dělá velký rozdíl. Pro výběr infrastruktury doporučujeme i obsah Bezpečný Web Hosting a pro zabezpečení webu SSL certifikát.

Metoda 1: Zakázání XML-RPC přes .htaccess na Apache nebo LiteSpeed

Nejčastější způsob na serverech s Apache nebo LiteSpeed je přidání pravidla do souboru .htaccess v kořenovém adresáři WordPressu, které zablokuje přístup k xmlrpc.php. LiteSpeed totiž podporuje stejná pravidla jako Apache, takže metoda funguje na obou. Výhodou je, že požadavek je zamítnut ještě před spuštěním WordPressu.

Postup krok za krokem

  • Přihlaste se do správy hostingu, otevřete správce souborů nebo se připojte přes FTP do složky public_html.
  • Najděte soubor .htaccess a stáhněte si jeho zálohu. Pokud ho nevidíte, zapněte zobrazování skrytých souborů.
  • Do horní části souboru přidejte pravidlo pro blokaci XML-RPC, aniž byste mazali stávající WordPress direktivy.
  • Pravidlo musí zakázat přístup ke všem požadavkům na xmlrpc.php.
  • Uložte změny a v prohlížeči vyzkoušejte adresu vasweb.cz/xmlrpc.php.

Pro Apache 2.4 a LiteSpeed by pravidlo mělo vypadat takto: definice Require all denied pro xmlrpc.php. Starší Apache 2.2 servery používají Deny from all, ale doporučujeme přejít na modernější verzi serveru do roku 2026. Pokud stále používáte starý Apache, je to nejen kvůli XML-RPC bezpečnostní riziko, ale i obecný problém.

Pokud je blokace úspěšná, stránka xmlrpc.php vrátí chybu 403 Forbidden, 404 Not Found nebo podobnou dle konfigurace serveru. Důležité je, že se neobjeví text „XML-RPC server accepts POST requests“, který by znamenal, že soubor je stále přístupný.

Metoda 2: Blokace XML-RPC na Nginx

Na serverech s Nginx soubor .htaccess nefunguje, protože Nginx nečte adresářové konfigurační soubory. Proto je třeba pravidlo přidat přímo do konfigurace serverového bloku (server block). Pokud máte spravovaný hosting, nemusí být tento přístup volně přístupný a bude potřeba požádat podporu o pomoc s blokací xmlrpc.php.

Standardní přístup je přidat do konfigurace blok location = /xmlrpc.php, který požadavky buď zamítne (403) nebo vrátí 404, což je z bezpečnostního hlediska lepší, protože botům neprozradí existenci souboru. Po úpravě je nutné konfiguraci otestovat a restartovat Nginx. Pozor, chyba v konfiguraci může způsobit nedostupnost celého webu, proto postupujte pečlivě.

Na VPS nebo dedikovaných serverech je vhodné po změně sledovat přístupové logy, zda už xmlrpc.php požadavky končí kódem 403 nebo 404. Pokud některé IP adresy stále útočí, doporučuje se přidat další vrstvu ochrany pomocí fail2ban, rate limiting nebo WAF pravidel. Více o zabezpečení VPS najdete v našem průvodci bezpečnost VPS serveru.

Metoda 3: Zakázání XML-RPC pomocí bezpečnostního pluginu

Pro uživatele, kteří nechtějí zasahovat do konfiguračních souborů, jsou ideální bezpečnostní pluginy. Například Wordfence, Solid Security nebo All-In-One Security často nabízejí volby pro deaktivaci XML-RPC, vypnutí pingbacků nebo omezení přihlašovacích pokusů přes XML-RPC. Tato metoda je vhodná zejména pro malé blogy či základní firemní weby.

Je ale důležité znát limity tohoto řešení. Pokud plugin blokuje XML-RPC až po spuštění WordPressu, útočník stále může zatěžovat PHP procesy a serverovou kapacitu. Plugin tedy zátěž úplně nezastaví, ale výrazně ji sníží. Proto u webů s vysokou návštěvností nebo častými útoky doporučujeme kombinovat plugin se serverovou nebo WAF ochranou.

Na co si dát pozor při použití pluginu

  • Stahujte pluginy pouze z oficiálního WordPress repozitáře nebo přímo od výrobce.
  • Vyhýbejte se neudržovaným pluginům bez aktualizací. Aktivní podpora a kompatibilita v roce 2026 je důležitá pro bezpečnost.
  • Neinstalujte více bezpečnostních pluginů současně, mohou si vzájemně škodit a způsobovat problémy s přihlašováním či cache.
  • Po nastavení otestujte funkčnost webu, přihlašování, formuláře, registraci a platební procesy.
  • Pravidelně kontrolujte logy bezpečnostního pluginu. Pokud zaznamenáte opakované útoky, přidejte blokaci IP adres nebo WAF pravidla.

Metoda 4: Blokace pomocí WAF, CDN a bezpečnostních firewallů

Metoda 4: Blokace pomocí WAF, CDN a bezpečnostních firewallů

Web Application Firewall (WAF) je velmi efektivní vrstva ochrany, která zastavuje škodlivé požadavky dříve, než dorazí do WordPressu. CDN služby jako Cloudflare umí blokovat přístupy na xmlrpc.php ještě před serverem. Podobně fungují i ModSecurity nebo vlastní WAF pravidla od vašeho hostingu. Tato ochrana je ideální pro odfiltrování velkého množství botů a škodlivých požadavků.

Pravidla by měla cílit přesně na URI obsahující xmlrpc.php – požadavky buď zablokovat, nebo vyžadovat výzvu k ověření (challenge). Pokud XML-RPC vůbec nepotřebujete, je blokace nejlepší volbou. Pokud jej občas využíváte, můžete povolit přístup pouze z vybraných IP adres, například z automatizační služby s fixní IP. Tento přístup vyvažuje bezpečnost a provozní potřeby.

WAF funguje nejlépe společně s HTTPS. Bez šifrování jsou přihlašovací údaje i relace zranitelné. Proto kromě deaktivace XML-RPC nezapomeňte provozovat celý web přes SSL, případně využít HSTS a sledovat platnost certifikátů. Více o SSL najdete v našich článcích SSL certifikát a Instalace bezplatného SSL.

Jak otestovat, že XML-RPC je opravdu vypnuté?

Po provedení blokace nestačí jen, že se web načte. Je potřeba ověřit, že XML-RPC je skutečně nedostupné, přihlašování funguje a běžné operace nejsou ovlivněny. Následující postup je jednoduchý a dostačující pro většinu provozovatelů.

  • Otevřete v prohlížeči adresu vasweb.cz/xmlrpc.php. Měli byste vidět chybovou hlášku o přístupu (403, 404 nebo prázdná stránka). Neměl by se zobrazit text „XML-RPC server accepts POST requests“.
  • Přihlaste se do administračního rozhraní WordPress běžným uživatelským jménem a heslem. Ověřte, že přihlašování neovlivnila deaktivace XML-RPC.
  • Otestujte kontaktní formuláře, komentáře, registrace uživatelů a platební procesy WooCommerce.
  • Zkontrolujte serverové logy, jaké HTTP kódy vrací požadavky na xmlrpc.php. Měly by být 403 nebo 404.
  • Pokud máte bezpečnostní plugin, sledujte jeho logy, zda eviduje pokles pokusů o útok skrz XML-RPC.

Pokročilejší testování lze provést i příkazem POST z terminálu, ale většině uživatelů postačí prohlížeč a kontrola logů. Pokud po blokaci přestanou fungovat Jetpack, mobilní aplikace nebo integrace, znamená to, že opravdu XML-RPC potřebujete a je vhodné zvážit IP whitelist nebo omezení počtu požadavků.

Je zakázání XML-RPC dostačující? Další bezpečnostní opatření

Zakázání XML-RPC výrazně snižuje riziko bruteforce útoků, ale není všespásné. Útočníci mohou zkoušet přihlašovat se přes wp-login.php, REST API, zranitelné pluginy, stará témata nebo použít uniklá hesla. Proto je třeba zabezpečení WordPressu řešit komplexně a vrstvit ochrany.

Základní doporučená opatření

  • Používejte silná hesla a jedinečná uživatelská jména. Vyhněte se běžnému „admin“.
  • Zapněte dvoufaktorové ověřování (2FA) zejména pro administrátorské účty. Výrazně snižuje riziko kompromitace.
  • Nastavte limit pokusů o přihlášení (rate limiting) přes wp-login.php pomocí pluginu nebo serverových nástrojů.
  • Pravidelně aktualizujte WordPress, pluginy a šablony. Staré verze jsou častou příčinou úniků.
  • Odstraňte nepoužívané pluginy a témata, které mohou představovat bezpečnostní riziko.
  • Kontrolujte oprávnění souborů, aby nebyly zbytečně zapisovatelné a nezpůsobily nahrání škodlivých souborů.
  • Pravidelně zálohujte web a ověřujte obnovitelnost záloh.
  • Vyberte si spolehlivý hosting s izolací účtů, aktuálním PHP, WAF a zálohováním.

Nepomůže například zakázat XML-RPC a zároveň mít heslo „123456“. Naopak kombinace silného hesla, 2FA, pravidelných aktualizací, WAF a bezpečného hostingu výrazně zablokuje většinu běžných botů a útoků. Tento přístup je důležitý také z pohledu SEO – slabé zabezpečení může vést k nechtěným přesměrováním, spamovým stránkám a zhoršení viditelnosti ve vyhledávačích.

Jaký vliv má zakázání XML-RPC na výkon a SEO?

Útoky přes XML-RPC přímo nejsou faktorem hodnocení ve vyhledávačích, ale jejich dopady ano. Nadměrný botí provoz zatěžuje server, prodlužuje dobu odezvy stránky, zhoršuje Core Web Vitals a tím i uživatelskou zkušenost. Časté výpadky nebo chyby 500 vedou k horšímu indexování Googlem.

Příklad: běžná doba odezvy hlavní stránky je 300 ms, ale při útoku na xmlrpc.php může PHP workerů dojít a odpověď se prodlouží na 2 sekundy. Pro uživatele je to znatelné zpomalení, klesá konverzní poměr a v Google Search Console se objeví kolísání statistik procházení. Blokace XML-RPC na serveru pomůže tyto problémy eliminovat ještě před dopadem na WordPress a výkon udrží stabilní.

Technické SEO tedy vyžaduje nejen kvalitní obsah, ale i bezpečnou a rychlou infrastrukturu. HTTPS, aktuální PHP, rychlá disková úložiště, správné cachování, čistá šablona a zmenšená útočná plocha jdou ruku v ruce s celkovou optimalizací. Proto by zabezpečení WordPressu mělo být součástí práce nejen správců, ale i SEO specialistů a obsahových týmů. Více o tom najdete u nás v Optimalizace rychlosti WordPressu a kontrolní seznam technického SEO.

Co dělat, pokud XML-RPC úplně vypnout nelze?

Některé projekty vyžadují XML-RPC stále aktivní – například mobilní publikování, firemní automatizace nebo starší integrace. V takovém případě je cílem nechat jej zapnutý, ale omezit přístup kontrolovaně. První možností je whitelist IP adres, kdy se povolí přístup pouze vybraným důvěryhodným službám a ostatní požadavky jsou zamítnuty.

Druhou možností je nastavení rate limitu – omezení počtu požadavků z jedné IP ve zvoleném časovém úseku. Tato metoda nezajistí úplnou blokaci, ale výrazně sníží objem útoků. Třetí variantou je deaktivace určitých metod pingbacku a povolení pouze nezbytných funkcí, což vyžaduje pokročilejší konfiguraci a zásah vývojáře.

Čtvrtý přístup spočívá v přidání další bezpečnostní vrstvy na XML-RPC – například HTTP basic autentizace, VPN přístup, omezení na firemní IP či challenge přes WAF. Takové řešení snižuje riziko veřejného zneužití. Ideální však je v dlouhodobém horizontu starší integrace nahradit moderním REST API, které je flexibilnější a bezpečněji ovladatelné.

Praktický plán pro uživatele Hostragons

Pokud hostujete WordPress na Hostragons, začněte analýzou, zda XML-RPC opravdu potřebujete. Pak vyberte nejméně komplikovanou metodu. Na sdíleném hostingu či WordPress balíčcích často stačí úprava .htaccess přes správce souborů. Na VPS nebo dedikovaných serverech můžete kombinovat blokace na Nginx, Apache, LiteSpeed a WAF.

Postupujte takto: nejdříve proveďte zálohu, zkontrolujte využití XML-RPC, proveďte blokaci na serveru, otestujte funkčnost, sledujte logy 24 hodin. Pokud útoky pokračují, přidejte WAF pravidla, blokaci IP a limity přihlášení. Nakonec doplňte 2FA, aktualizace, pravidelné zálohy a SSL certifikáty.

Tento proces není o prodeji, ale o základní hygieně zabezpečení. Pokud vaše infrastruktura používá zastaralé PHP verze, nedostatečné zdroje nebo nemá firewall, zvažte upgrade na novější hostingový plán. Optimalizované prostředí pro WordPress s bezpečnostními vrstvami zvládne útoky lépe a zároveň zlepší běžný výkon. Pro lepší orientaci doporučujeme WordPress hosting, cloud server a SSL certifikát.

Často kladené otázky

Způsobí vypnutí XML-RPC problémy na mém WordPress webu?

Většina standardních WordPress webů funguje bez problémů i s vypnutým XML-RPC. Administrace, šablona, obsah, formuláře a front-end nejsou obvykle ovlivněny. Problémy mohou nastat, pokud používáte Jetpack, mobilní aplikaci nebo vlastní integrace závislé na XML-RPC. Proto před deaktivací vždy ověřte potřebu a po změně otestujte klíčové funkce.

Jak zjistím, jestli je XML-RPC vypnuté?

Otevřete v prohlížeči adresu vasweb.cz/xmlrpc.php. Pokud uvidíte zprávu „XML-RPC server accepts POST requests“, znamená to, že XML-RPC je aktivní. Chybový kód 403, 404 nebo zamítnutý přístup značí úspěšnou blokaci. Pro jistotu můžete také zkontrolovat stav v serverových log souborech podle HTTP kódu u požadavků na xmlrpc.php.

Odstraní vypnutí XML-RPC úplně všechny brute force útoky?

Deaktivace XML-RPC výrazně sníží počet brute force pokusů přicházejících přes tento kanál, ale nevyřeší všechny hrozby. Útočníci stále mohou útočit přes wp-login.php nebo jiné zranitelné části. Proto je vhodné kombinovat s dalšími bezpečnostními opatřeními, jako jsou silná hesla, 2FA, omezení přihlášení a WAF.

Pokud používám Jetpack, měl bych XML-RPC vypnout?

Některé funkce Jetpacku spoléhají na XML-RPC. Pokud Jetpack používáte, nejdříve zjistěte, které moduly závisí na XML-RPC. Alternativně můžete povolit přístup jen pro IP adresy Jetpacku nebo nastavit kontrolovaný přístup přes WAF. Kompletní vypnutí XML-RPC bez úprav může způsobit výpadky funkcí.

Co je lepší – vypnout XML-RPC přes plugin nebo přímo na serveru?

Nejlepší výkon a bezpečnost zajistí blokace na úrovni serveru nebo WAF, protože požadavek je odmítnut před spuštěním WordPressu a PHP. Plugin je vhodný pro uživatele bez technických znalostí, ale při silných útocích nezabrání úplné zátěži serveru. Pokud je to možné, upřednostněte serverová pravidla, případně je kombinujte s kvalitním bezpečnostním pluginem a WAF.

Shrnutí a doporučený další krok

Zakázání WordPress XML-RPC je rychlý a efektivní způsob, jak snížit riziko brute force útoků, zneužití pingbacků a omezit zbytečnou botí aktivitu na webu, pokud jej nepotřebujete. Nejlepší je zablokovat přístup na xmlrpc.php přímo na serverové nebo WAF úrovni. Současně byste měli posílit bezpečnost pomocí omezení přihlášení, 2FA, pravidelných aktualizací, SSL certifikátu a záloh. Pokud chcete zkontrolovat bezpečnost svého webu, podívejte se na hostingové a bezpečnostní služby Hostragons zaměřené na WordPress a začněte s jednoduchým bezpečnostním checklistem už dnes.

Sdílejte tento článek:

Tým Hostragons

Aktuální průvodci od našeho týmu odborníků na hosting, servery a doménová jména. Pojďme společně najít to správné řešení pro váš projekt.

Kontaktujte nás