Prečo WordPress nestačí pre firemné aplikácie: bezpečnosť, výkon a reálne náklady
WordPress je impozantný úspech open-source sveta. Za dvadsať rokov vyrástol z osobného blogovacieho nástroja na platformu, ktorá poháňa vyše 43 % všetkých webových stránok sveta. Lenže 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ť.
Tento článok nie je anti-WordPress manifest. Je to triezva analýza toho, čo sa stane, keď firemnú aplikáciu postavíte na nástroji navrhnutom na iný účel – a čo za to skutočne zaplatíte.
Bezpečnostné čísla, ktoré hovoria za všetko
Databáza WPScan eviduje vyše 57 000 zdokumentovaných zraniteľností v pluginoch, témach a jadre WordPressu. V priemere vychádza 50 – 70 nowych CVE záznamov každý týždeň. Sucuri vo svojej správe o napadnutých weboch uvádza, že 96 % infikovaných CMS platforiem tvorí práve WordPress (čo sčasti odráža aj jeho dominantný trhový podiel). Kľúčová otázka nie je „či bude WordPress napadnutý", ale „kedy a akým vektorom".
Ako vyzerá útok 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.txt,wp-includes/version.phpalebo 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, unauthenticated file upload, XSS vedúce 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 často len niekoľko hodín od zverejnenia CVE. Väčšina prevádzkovateľov pritom aktualizuje pluginy ručne a nepravidelne.
Pluginy: najväčšia útočná plocha
Jadro WordPressu samotné je dnes relatívne dobre udržiavané. Problémom sú pluginy – a ich ekosystém je chaotický:
- Vyše 60 000 pluginov v oficiálnom repozitári, tisíce ďalších komerčných.
- Pluginy píšu autori s rôznou úrovňou bezpečnostného povedomia – od profesionálov po amatérov.
- 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 môže byť kedykoľvek predaný inému vlastníkovi – v roku 2021 bol populárny plugin AccessPress Themes po predaji zámerne infikovaný backdoorom, ktorý postihol vyše 360 000 webov (analýza Jetpack).
Pri vlastnom kóde je útočná plocha presne taká, akú si sami vytvoríte. Žiadny kód tretej strany s právami 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.
Tieto rozhrania možno zablokovať alebo skryť, ale vyžaduje to vedomé kroky a pravidelnú kontrolu – pretože aktualizácia jadra ich môže znovu sprístupniť.
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 pluginmi. Výsledky z mojich 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úkne, riešia pluginy. Lenže prémiové pluginy sú predplatné:
- WooCommerce + kľúčové rozšírenia: 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 a prenastavenie vás bude stáť hodiny alebo dni. Vlastný kód platíte raz – a je váš natrvalo.
Aktualizácie ako ruská ruleta
Každá aktualizácia pluginu predstavuje riziko. V prostredí, kde máte 20+ pluginov od 20 rôznych autorov, je konflikt po aktualizácii štatisticky nevyhnutný. Výsledok: web sa rozbije o 3:00 v noci, zákazníci vidia chybovú stránku a vy voláte vývojára. Odložíte aktualizáciu? Prevádzkujete zraniteľný softvér, ktorý boty aktívne skenujú. Žiadna z možností nie je dobrá.
Kedy WordPress dáva zmysel
Buďme féroví. WordPress má svoje miesta, kde dáva perfektný zmysel:
- Firemný blog alebo PR web bez citlivých dát a bez vlastnej použí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
- Tím, kde obsah spravujú netechnickí používatelia a developer je k dispozícii na pravidelnú údržbu
Akonáhle ale váš web spracúva osobné dáta zákazníkov, platby, firemné dokumenty alebo citlivé prihlásenie – 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 architektonickej ú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 spracú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 porovnatellný. A po celý čas prevádzkujete systém, ktorého kód poznáte do posledného riadku, ktorého útočná plocha je minimálna a ktorého bezpečnosť nezávisí od rozhodnutí anonymných vývojárov pluginov tretích strán.
Chcete vedieť, ako by takéto riešenie vyzeralo pre váš konkrétny prípad? Napíšte mi – konzultácia je zadarmo.