Prečo WordPress nestačí pre firemní aplikácia: bezpečnosť, výkon a reálné náklady
WordPress je impozantní úspěch open-source světa. Za dvacet rokov 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ě táto masová rozšířenost se pre 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, keď firemní aplikaci postavíte na nástroji navrženém pre 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í „či bude WordPress napaden", ale „kdy a akoým vektorem".
Ako vypadá útok v praxi
Útočníci WordPress nenapádají len hrubou silou. Pracují systematicky a automatizovaně. Typický scénář vypadá takto:
- Fingerprinting – bot identifikuje verzi WordPressu, nainstalované pluginy a ich verze (súbory ako
readme.txt,wp-includes/version.phpalebo HTTP hlavičky sú 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, alebo brute force na
/wp-login.phpa XML-RPC endpoint. - Persistance – nahraje webshell, přidá backdoorovaného admina alebo vloží šifrovaný payload do databáze (
wp_options), odkud se aktivuje pri 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 sú pluginy – a ich 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 bol 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 alebo zastavit.
XML-RPC a /wp-login.php: trvale otevřené dveře
WordPress obsahuje dva endpointy, které sú terčem automatizovaných útoků každou minutu:
/wp-login.php– přihlašovací stránka dostupná bez akoékoli ochrany.xmlrpc.php– rozhraní původně určené pre vzdálené publikování, dnes primárně zneužívané pre brute force (jedno HTTP volání umožní otestovat stovky hesiel najednou přes multicall) a DDoS amplifikaci.
Táto rozhraní lze zablokovat alebo skrýt, ale vyžaduje to vědomé kroky a pravidelnou kontrolu – pretože aktualizace jádra je môže znovu zpřístupnit.
Výkon: tvrdá čísla
WordPress pri každém načtení stránky typicky provádí 15–80 databázových dotazů a načítá desítky PHP souborů len z jádra – ještě pred 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 aplikácia 80–200 ms.
PageSpeed skóre není len UX metrika. Google jej používá ako 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 sú 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 alebo dny. Vlastní kód platíte jednou – a je váš natrvalo.
Aktualizace ako 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 alebo 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í používateľé a developer je k dispozici pre pravidelnou údržbu
Jakmile ale váš web zpracovává osobní data zákazníků, platby, firemní dokumenty alebo citlivé přihlášení – vědomě si vybíráte nejčastěji napadaný CMS světa ako opatrovníka těchto dat.
Co dává vlastní vývoj navíc
Vlastní aplikácia není automaticky bezpečná len proto, že není WordPress. Bezpečnosť je výsledek vědomých rozhodnutí. V DubNet CZ každá aplikácia 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 pre vynutitelné HTTPS a ochranu pred 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ý používateľ aplikácia nemá práva CREATE/DROP tabulek.
- 2FA pre administrátorský přístup.
Závěr: rozhodnutí má cenu
WordPress je legitimní nástroj se správným použitím. Pre firemní aplikaci zpracovávající data zákazníků, platby alebo interní firemní informácie ale přináší systémové bezpečnostní riziko, které nelze zcela eliminovat – len 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čnosť nezávisí na rozhodnutích anonymních vývojářů pluginů třetích stran.
Chcete vědět, ako by takové řešení vypadalo pre váš konkrétní případ? Napište mi – konzultace je zdarma.