Prečo sú WordPress weby také zraniteľné
WordPress je open-source a jeho kód je verejne dostupný. Útočníci presne vedia, ako vyzerá každý súbor, každý endpoint a každá potenciálna zraniteľnosť. Automatizované boty skenujú milióny domén denne a hľadajú zastaralé verzie pluginov, prístupné wp-login.php alebo nezabezpečené XML-RPC.
Dobrá správa: 90 % útokov je úplne triviálnych a dajú sa eliminovať jednoduchými konfiguráciami. Tu sú všetky.
12 krokov k zabezpečenému WordPress webu
Hosting s PHP 8.3+, SSL/TLS a HSTS
Prvá línia obrany je samotný server. PHP 8.3 opravuje desiatky bezpečnostných zraniteľností oproti PHP 7.x. Aktívna SSL/TLS certifikácia (Let's Encrypt je zadarmo) a HSTS hlavička zabraňujú man-in-the-middle útokom.
# .htaccess – HSTS na rok
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Automatické aktualizácie – core, pluginy, témy
Väčšina napadnutých wébov mala zastaraný plugin. WordPress 6.x podporuje automatické aktualizácie core aj pluginov. Zapnite ich v wp-config.php:
define('WP_AUTO_UPDATE_CORE', true);
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Pred povolením automatických aktualizácií pluginov sa uistite, že máte funkčné zálohy (krok 10).
Odstrániť všetky nepoužívané pluginy a témy
Deaktivovaný plugin stále obsahuje kód. Útočníci ho môžu exploitovať aj keď ho WordPress „nevyužíva". Pravidlo je jednoduché: ak ho nepoužívate, zmažte ho. To platí aj pre predvolené témy (Twenty Twenty-Three, Twenty Twenty-Four).
Bežný audit: prejdite pluginy, odstrániť tie, ktoré nepotrebujete. Zníženie počtu pluginov o 5 je lepšie ako aktualizovanie 5 zbytočných.
Silné heslá + dvojfaktorová autentifikácia (2FA)
Heslo „admin" alebo „12345678" je zodpovedné za tisíce napadnutí denne. Minimálne požiadavky: 16+ znakov, mix veľkých/malých písmen, číslic a symbolov.
2FA pridajte cez plugin WP 2FA (bezplatný) alebo Wordfence Login Security. Po aktivácii musí útočník okrem hesla zadať aj jednorazový kód z autentifikátora — to eliminuje brute force prakticky úplne.
Blokovanie brute force útokov
Bez ochrany môžu boty skúšať tisíce hesiel za minútu. Riešenie má tri vrstvy:
- Limit Login Attempts Reloaded — po X neúspešných pokusoch zablokuje IP
- Wordfence — firewall + rate limiting na úrovni PHP
- Cloudflare Rate Limiting — blokuje na úrovni CDN, ešte pred PHP (najefektívnejšie)
Skryť alebo premenovať prihlasovaciu stránku
Predvolená URL /wp-login.php je prvá vec, ktorú boty hľadajú. Plugin WPS Hide Login ju premenovuje na ľubovoľnú cestu (napr. /vstup). Toto samo o sebe nestačí ako bezpečnostný prvok, ale dramaticky znižuje počet automatizovaných pokusov.
Zakázať XML-RPC
XML-RPC je zastaraný protokol, ktorý WordPress stále ponúka na /xmlrpc.php. Ak nepoužívate Jetpack ani mobilnú aplikáciu WordPress, vypnite ho úplne:
# .htaccess
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
XML-RPC umožňuje multiplicative brute force — jeden request môže otestovať stovky hesiel naraz.
Zakázať editor súborov v administrácii
WordPress administrácia obsahuje editor pre PHP súbory tém a pluginov. Ak útočník získa prístup k admin panelu, môže cez tento editor spustiť ľubovoľný PHP kód. Vypnite ho jedným riadkom v wp-config.php:
define('DISALLOW_FILE_EDIT', true);
Bezpečnostné HTTP hlavičky
Správne nastavené hlavičky bránia XSS útokom, clickjacking-u a úniku informácií o serveri. Pridajte do .htaccess:
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"
Otestujte výsledok na securityheaders.com — cieľ je hodnotenie A alebo A+.
Zálohy podľa pravidla 3-2-1
Zálohy sú posledná záchranná sieť pri ransomware alebo fatálnej chybe. Pravidlo 3-2-1: 3 kópie, na 2 médiách, 1 mimo lokality.
- UpdraftPlus (zadarmo) — automatické zálohy na Google Drive, Dropbox alebo S3
- Frekvencia: databáza denne, súbory týždenne
- Retenciu nastavte na 30 dní — malvér sa niekedy aktivuje s oneskorením
- Zálohu pravidelne testujte obnovou na staging prostredí
WAF – Web Application Firewall
WAF filtruje škodlivé requesty ešte pred tým, ako sa dostanú k PHP. Máte dve možnosti:
- Wordfence — PHP-level WAF, zadarmo v základnej verzii. Blokuje známe útokové vzory a podozrivé IP adresy.
- Cloudflare WAF — sieťová úroveň, blokuje pred serverom. Efektívnejšie, ale vyžaduje presun DNS na Cloudflare. Free plán obsahuje základné pravidlá.
Pre produkčné weby odporúčam kombináciu: Cloudflare pre DDoS ochranu a blokovanie botov + Wordfence pre aplikačnú vrstvu.
Monitoring integrity súborov
Aj keď nastavíte všetko správne, monitoring integrity vás upozorní ak niekto predsa len modifikuje PHP súbory. Wordfence skenuje súbory a porovnáva ich s originálmi z WordPress repozitára — ak sa nejaký súbor zmenil bez vašej vedomosti, dostanete e-mail.
# WP-CLI – manuálna kontrola integrity core súborov
wp core verify-checksums
wp plugin verify-checksums --all
Spúšťajte tento príkaz aspoň raz mesačne, ideálne cez cron.
functions.php aktívnej témy remove_action('wp_head', 'wp_generator');. Útočníci nebudú vedieť, akú verziu WP používate a či je zraniteľná.
Koľko to stojí čas a peniaze
Implementácia všetkých 12 krokov trvá skúsenému vývojárovi 2–4 hodiny. Pre bežného majiteľa webu je to pol dňa. Náklady na pluginy: väčšina riešení má bezplatnú verziu, Wordfence Premium stojí 119 USD/rok — čo je zlomok nákladov pri riešení napadnutého webu (čistenie infikovaného WordPress webu stojí 500–2 000 EUR).
Čo robiť ak bol váš web napadnutý
Ak zistíte kompromitáciu, postupujte v tomto poradí:
- Okamžite preveďte web do maintenance mode a izolujte ho
- Zmeňte všetky heslá — WordPress admin, FTP/SFTP, databáza, hosting panel
- Obnovte čistú zálohu spred napadnutia
- Skontrolujte všetkých admin používateľov — útočníci často vytvárajú skryté adminsky účty
- Preskúmajte serverové logy, zistite ako sa dostali dnu
- Až potom implementujte chýbajúce bezpečnostné kroky
Záver
WordPress bezpečnosť nie je jednorazová aktivita — je to kontinuálny proces. Implementujte týchto 12 krokov, nastavte monitoring a zálohy, a váš web bude odolný voči 99 % automatizovaných útokov. Ten zvyšný 1 % rieši profesionálny správca.
Ak nemáte čas alebo chuť riešiť bezpečnosť sami, ponúkam komplexnú bezpečnostnú správu WordPress webov vrátane mesačného reportu o stave zabezpečenia.