Proč WordPress nestačí pro firemní aplikace: bezpečnost, výkon a reálné náklady
WordPress je impozantní úspěch open-source světa. Za dvacet let vyrostl z osobního blogovacího nástroje na platformu, která pohání přes 43 % všech webových stránek světa. Jenže právě tato masová rozšířenost se pro firmy stala dvojsečnou zbraní – a bezpečnostním problémem, který nelze ignorovat.
Tento článek není anti-WordPress manifest. Je to střízlivá analýza toho, co se stane, když firemní aplikaci postavíte na nástroji navrženém pro jiný účel – a co za to skutečně zaplatíte.
Bezpečnostní čísla, která mluví za vše
Databáze WPScan eviduje přes 57 000 zdokumentovaných zranitelností v pluginech, tématech a jádru WordPressu. V průměru vychází 50–70 nových CVE záznamů každý týden. Sucuri ve své zprávě o napadených webech uvádí, že 96 % infikovaných CMS platforem tvoří právě WordPress. Klíčová otázka není „zda bude WordPress napaden", ale „kdy a jakým vektorem".
Jak vypadá útok v praxi
Útočníci WordPress nenapádají jen hrubou silou. Pracují systematicky a automatizovaně. Typický scénář vypadá takto:
- Fingerprinting – bot identifikuje verzi WordPressu, nainstalované pluginy a jejich verze (soubory jako
readme.txt,wp-includes/version.phpnebo HTTP hlavičky jsou veřejně dostupné). - CVE matching – automaticky porovná verze s databází zranitelností. Najde-li shodu, přechází k exploitu.
- Exploitace – nejčastěji přes SQL injection v pluginu, unauthenticated file upload, XSS vedoucí ke krádeži session, nebo brute force na
/wp-login.phpa XML-RPC endpoint. - Persistance – nahraje webshell, přidá backdoorovaného admina nebo vloží šifrovaný payload do databáze (
wp_options), odkud se aktivuje při každém načtení stránky.
Celý proces od skenování po kompromitaci trvá u zranitelné instalace v průměru méně než 4 hodiny od zveřejnění CVE. Většina provozovatelů přitom aktualizuje pluginy ručně a nepravidelně.
Pluginy: největší útočná plocha
Jádro WordPressu samotné je dnes relativně dobře udržované. Problémem jsou pluginy – a jejich ekosystém je chaotický:
- Přes 60 000 pluginů v oficiálním repozitáři, tisíce dalších komerčních.
- Pluginy píší autoři s různou úrovní bezpečnostního povědomí – od profesionálů po amatéry.
- Průměrná WordPress instalace má 22 aktivních pluginů.
- Každý plugin přidává kód třetí strany s přímým přístupem k databázi, souborovému systému i HTTP požadavkům.
- Plugin může být kdykoli prodán jinému vlastníkovi – v roce 2021 byl populární plugin AccessPress Themes po prodeji záměrně infikován backdoorem, který postihl přes 360 000 webů.
U vlastního kódu je útočná plocha přesně taková, jakou si sami vytvoříte. Žádný kód třetí strany s právy k databázi. Žádné pluginy, jejichž autor se rozhodl projekt prodat nebo zastavit.
XML-RPC a /wp-login.php: trvale otevřené dveře
WordPress obsahuje dva endpointy, které jsou terčem automatizovaných útoků každou minutu:
/wp-login.php– přihlašovací stránka dostupná bez jakékoli ochrany.xmlrpc.php– rozhraní původně určené pro vzdálené publikování, dnes primárně zneužívané pro brute force (jedno HTTP volání umožní otestovat stovky hesel najednou přes multicall) a DDoS amplifikaci.
Tato rozhraní lze zablokovat nebo skrýt, ale vyžaduje to vědomé kroky a pravidelnou kontrolu – protože aktualizace jádra je může znovu zpřístupnit.
Výkon: tvrdá čísla
WordPress při každém načtení stránky typicky provádí 15–80 databázových dotazů a načítá desítky PHP souborů jen z jádra – ještě před pluginy. Výsledky z reálných projektů:
- Průměrný WordPress web: Google PageSpeed 45–65 (bez agresivního cachování a optimalizace).
- Stejný obsah na vlastní aplikaci: 90–98 bez speciálního úsilí.
- Time to First Byte (TTFB): WP typicky 600–1 200 ms, vlastní PHP aplikace 80–200 ms.
PageSpeed skóre není jen UX metrika. Google jej používá jako rankingový faktor od aktualizace Core Web Vitals. Pomalý web = horší pozice ve vyhledávání = méně zákazníků.
Vendor lock-in: zlatá klec pluginů
Funkce, které WordPress sám nenabídne, řeší pluginy. Jenže prémiové pluginy jsou předplatné:
- WooCommerce + klíčové rozšíření: 150–500 USD/rok
- Pokročilé formuláře (Gravity Forms): 160–260 USD/rok
- Membership plugin: 150–300 USD/rok
- Zálohovací a bezpečnostní plugin: 100–200 USD/rok
Přestanete platit? Přijdete o aktualizace a budete provozovat zranitelný software. Přejdete na jiný plugin? Migrace dat a přenastavení vás bude stát hodiny nebo dny. Vlastní kód platíte jednou – a je váš natrvalo.
Aktualizace jako ruská ruleta
Každá aktualizace pluginu představuje risk. V prostředí, kde máte 20+ pluginů od 20 různých autorů, je konflikt po aktualizaci statisticky nevyhnutelný. Výsledek: web se rozbije ve 3:00 v noci, zákazníci vidí chybovou stránku, a vy voláte vývojáře. Odložíte aktualizaci? Provozujete zranitelný software, který boti aktivně skenují. Žádná z možností není dobrá.
Kdy WordPress dává smysl
Buďme féroví. WordPress má svá místa, kde dává perfektní smysl:
- Firemní blog nebo PR web bez citlivých dat a bez vlastní uživatelské databáze
- Jednoduchý katalogový web s nepravidelnou aktualizací obsahu
- Projekt s omezeným rozpočtem, kde stačí základní funkce
- Tým, kde obsah spravují netechničtí uživatelé a developer je k dispozici pro pravidelnou údržbu
Jakmile ale váš web zpracovává osobní data zákazníků, platby, firemní dokumenty nebo citlivé přihlášení – vědomě si vybíráte nejčastěji napadaný CMS světa jako opatrovníka těchto dat.
Co dává vlastní vývoj navíc
Vlastní aplikace není automaticky bezpečná jen proto, že není WordPress. Bezpečnost je výsledek vědomých rozhodnutí. V DubNet CZ každá aplikace obsahuje:
- PDO prepared statements – žádné inline SQL, SQL injection eliminována na architekturální úrovni.
- CSRF tokeny na všech formulářích se stavovým přechodem.
- Rate limiting přihlašování na základě IP adresy s exponenciálním zpožděním.
- Content Security Policy (CSP) hlavičky omezující povolené zdroje skriptů a stylů.
- HSTS pro vynutitelné HTTPS a ochranu před SSL stripping.
- Auditní logy veškerých přihlášení, změn dat a administrátorských akcí.
- Minimální oprávnění – databázový uživatel aplikace nemá práva CREATE/DROP tabulek.
- 2FA pro administrátorský přístup.
Závěr: rozhodnutí má cenu
WordPress je legitimní nástroj se správným použitím. Pro firemní aplikaci zpracovávající data zákazníků, platby nebo interní firemní informace ale přináší systémové bezpečnostní riziko, které nelze zcela eliminovat – jen spravovat, a to za cenu pravidelného času a peněz.
Vlastní vývoj stojí více na začátku. Za 2–3 roky je finančně srovnatelný. A po celou dobu provozujete systém, jehož kód znáte do posledního řádku, jehož útočná plocha je minimální a jehož bezpečnost nezávisí na rozhodnutích anonymních vývojářů pluginů třetích stran.
Chcete vědět, jak by takové řešení vypadalo pro váš konkrétní případ? Napište mi – konzultace je zdarma.