WordPress je pozoruhodný úspech open-source sveta. Za dvadsať rokov vyrástol z osobného blogovacieho nástroja na platformu, ktorá pohání viac ako 43 % všetkých webových stránok sveta. Práve táto masová rozšírenosť sa pre firmy stala dvojsečnou zbraňou – a bezpečnostným problémom, ktorý nemožno ignorovať.
Bezpečnostné čísla, ktoré hovoria za všetko
Databáza WPScan eviduje viac ako 57 000 zdokumentovaných zraniteľností v pluginoch, témach a jadre WordPressu. Každý týždeň pribúda 50–70 nových CVE záznamov. Sucuri vo svojej správe o napadnutých weboch uvádza, že 96 % infikovaných CMS platforiem tvorí práve WordPress. Kľúčová otázka preto nie je „či bude WordPress napadnutý", ale „kedy a akým vektorom".
Ako útok vyzerá v praxi
Útočníci WordPress nenapádajú len hrubou silou. Pracujú systematicky a automatizovane. Typický scenár vyzerá takto:
- Fingerprinting – bot identifikuje verziu WordPressu, nainštalované pluginy a ich verzie (súbory ako
readme.txtalebo HTTP hlavičky sú verejne dostupné). - CVE matching – automaticky porovná verzie s databázou zraniteľností. Ak nájde zhodu, prechádza k exploitu.
- Exploitácia – najčastejšie cez SQL injection v plugine, nechránený upload súborov, XSS vedúci ku krádeži session alebo brute force na
/wp-login.phpa XML-RPC endpoint. - Perzistencia – nahrá webshell, pridá backdoorovaného admina alebo vloží šifrovaný payload do databázy (
wp_options), odkiaľ sa aktivuje pri každom načítaní stránky.
Celý proces od skenovania po kompromitáciu trvá pri zraniteľnej inštalácii v priemere menej ako 4 hodiny od zverejnenia CVE. Väčšina prevádzkovateľov pritom aktualizuje pluginy ručne a nepravidelne.
Pluginy: najväčšia útočná plocha
Jadro WordPressu je dnes relatívne dobre udržiavané. Problémom sú pluginy – a ich ekosystém je chaotický:
- Viac ako 60 000 pluginov v oficiálnom repozitári, tisíce ďalších komerčných.
- Priemerná WordPress inštalácia má 22 aktívnych pluginov.
- Každý plugin pridáva kód tretej strany s priamym prístupom k databáze, súborovému systému aj HTTP požiadavkám.
- Plugin možno kedykoľvek predať inému vlastníkovi – v roku 2021 bol populárny plugin AccessPress Themes po predaji zámerné infikovaný backdoorom, ktorý postihol viac ako 360 000 webov.
Pri vlastnom kóde je útočná plocha presne taká, akú si sami vytvoríte. Žiadny kód tretej strany s prístupom k databáze. Žiadne pluginy, ktorých autor sa rozhodol projekt predať alebo zastaviť.
XML-RPC a /wp-login.php: trvalo otvorené dvere
WordPress obsahuje dva endpointy, ktoré sú terčom automatizovaných útokov každú minútu:
/wp-login.php– prihlasovacia stránka dostupná bez akejkoľvek ochrany.xmlrpc.php– rozhranie pôvodne určené na vzdialené publikovanie, dnes primárne zneužívané na brute force (jedno HTTP volanie umožní otestovať stovky hesiel naraz cez multicall) a DDoS amplifikáciu.
Výkon: tvrdé čísla
WordPress pri každom načítaní stránky typicky vykonáva 15–80 databázových dotazov a načítava desiatky PHP súborov len z jadra – ešte pred spustením pluginov. Výsledky z reálnych projektov:
- Priemerný WordPress web: Google PageSpeed 45–65 (bez agresívneho cachovania a optimalizácie).
- Rovnaký obsah na vlastnej aplikácii: 90–98 bez špeciálneho úsilia.
- Time to First Byte (TTFB): WP typicky 600–1 200 ms, vlastná PHP aplikácia 80–200 ms.
PageSpeed skóre nie je len UX metrika. Google ho používa ako rankingový faktor od aktualizácie Core Web Vitals. Pomalý web = horšie pozície vo vyhľadávaní = menej zákazníkov.
Vendor lock-in: zlatá klietka pluginov
Funkcie, ktoré WordPress sám neponúka, riešia pluginy. Prémiové pluginy sú predplatné:
- WooCommerce + kľúčové rozšírenie: 150–500 USD/rok
- Pokročilé formuláre (Gravity Forms): 160–260 USD/rok
- Membership plugin: 150–300 USD/rok
- Zálohovací a bezpečnostný plugin: 100–200 USD/rok
Prestanete platiť? Prídete o aktualizácie a budete prevádzkovať zraniteľný softvér. Prejdete na iný plugin? Migrácia dát vás bude stáť hodiny alebo dni. Vlastný kód platíte raz – a je váš navždy.
Kedy WordPress dáva zmysel
WordPress má svoje miesta, kde dáva perfektný zmysel:
- Firemný blog alebo PR web bez citlivých dát a bez vlastnej užívateľskej databázy
- Jednoduchý katalógový web s nepravidelnou aktualizáciou obsahu
- Projekt s obmedzeným rozpočtom, kde stačia základné funkcie
Akonáhle však váš web spracováva osobné dáta zákazníkov, platby, firemné dokumenty alebo citlivé prihlasovanie – vedome si vyberáte najčastejšie napádaný CMS sveta ako opatrovníka týchto dát.
Čo dáva vlastný vývoj navyše
Vlastná aplikácia nie je automaticky bezpečná len preto, že nie je WordPress. Bezpečnosť je výsledok vedomých rozhodnutí. V DubNet CZ každá aplikácia obsahuje:
- PDO prepared statements – žiadne inline SQL, SQL injection eliminovaná na architekturálnej úrovni.
- CSRF tokeny na všetkých formulároch so stavovým prechodom.
- Rate limiting prihlasovania na základe IP adresy s exponenciálnym oneskorením.
- Content Security Policy (CSP) hlavičky obmedzujúce povolené zdroje skriptov a štýlov.
- HSTS pre vynútiteľné HTTPS a ochranu pred SSL stripping.
- Auditné logy všetkých prihlásení, zmien dát a administrátorských akcií.
- Minimálne oprávnenia – databázový používateľ aplikácie nemá práva CREATE/DROP tabuliek.
- 2FA pre administrátorský prístup.
Záver: rozhodnutie má cenu
WordPress je legitímny nástroj so správnym použitím. Pre firemnú aplikáciu spracovávajúcu dáta zákazníkov, platby alebo interné firemné informácie však prináša systémové bezpečnostné riziko, ktoré nemožno úplne eliminovať – len spravovať, a to za cenu pravidelného času a peňazí.
Vlastný vývoj stojí viac na začiatku. Za 2–3 roky je finančne porovnateľný. A po celý čas prevádzkujete systém, ktorého kód poznáte do posledného riadka, ktorého útočná plocha je minimálna a ktorého bezpečnosť nezávisí na rozhodnutiach anonymných vývojárov pluginov tretích strán.
Chcete vedieť, ako by také riešenie vyzeralo pre váš konkrétny prípad? Napíšte mi – konzultácia je zadarmo.