Jak na zabezpečení WordPressu? Kompletní návod

Jak zabezpečit WordPress? Toť problematika, která se neodmyslitelně dotýká úplně každého, kdo provozuje webové stránky s tímto redakčním systémem. Jde tu totiž nejenom o bezpečnost majitelů stránek, ale rovněž návštěvníků (potažmo zákazníků), kteří se na webu pohybují. Ve hře jsou třeba přístupové údaje k účtům, informace o uživatelích, anebo kontrola nad webem. Bezpečnosti se tedy vyplatí věnovat náležitou pozornost.

Nejprve si řekneme, odkud útoky reálně přicházejí a proč jsou nejčastější vstupní branou zranitelné pluginy a šablony. Pak přijde sada konkrétních tipů, jak WordPress zabezpečit. A na konci to, co v podobných návodech obvykle chybí: postup, co dělat, když už je web napadený.

Řešíte to teď a v panice? Pokud máte podezření, že už je web napadený, přeskočte rovnou na kapitolu Co dělat, když je WordPress napadený. Prevence počká, prvních pár hodin po průniku ne.

(WordPress) bezpečnost především!

Obrázek ilustrující, proč se věnovat zabezpečení WordPressu.

S jednou představou je dobré se rozloučit hned na začátku: drtivá většina útoků na WordPress není cílená. Nikdo si Váš web nevybral. Roboti nepřetržitě projíždějí internet, hledají weby se známou zranitelnou verzí pluginu nebo se slabým heslem a zkoušejí, co projde. Malý firemní web je pro ně stejně zajímavý jako velký e-shop – hodí se na rozesílání spamu, skryté přesměrování návštěvníků i na podvodné stránky.

Právě proto nefunguje obrana ve stylu „u mě není co ukrást“. Fungují jenom nudné, pravidelné věci: aktualizovat, mít pořádná hesla, umět se vrátit ze zálohy a vědět, co na webu vlastně běží.

Kudy se do WordPressu chodí: pluginy a šablony

Když se řekne „napadený WordPress“, spousta lidí si představí díru v samotném WordPressu. Realita je jiná. Podle přehledu State of WordPress Security in 2026 od společnosti Patchstack bylo v ekosystému WordPressu za rok 2025 nalezeno 11 334 nových zranitelností. Z toho 91 % připadalo na pluginy a 9 % na šablony – a v samotném jádru WordPressu jich bylo šest, všechny s nízkou prioritou.

Čísla nejsou strašák, ale návod, kam napřít pozornost. Riziko roste hlavně s tím, kolik má web rozšíření a jak dobře se o ně někdo stará. Každý plugin je kus cizího kódu běžícího s plnými právy. Deset pluginů znamená deset dodavatelů, kterým důvěřujete.

Zranitelnost v jádře je výjimka, ne pravidlo – ale když přijde, bývá nepříjemná. Ukázkou je chyba popsaná v článku WP2Shell: kritická chyba ve WordPressu umožňuje napadení bez přihlášení. Netýká se žádného pluginu ani šablony a útočník k ní nepotřebuje účet ani heslo – stačí, že web běží na dotčené verzi. Přesně proto se obrana nedá postavit na jediném opatření.

Jak si ověřit, že plugin ještě někdo vyvíjí

Opuštěný plugin nepřestane fungovat ze dne na den. Pořád si tiše běží, jenom už mu nikdo neopravuje chyby. Ověření zabere dvě minuty – na stránce pluginu na wordpress.org/plugins si projděte tohle:

  • Datum poslední aktualizace (Last updated). Déle než rok bez aktualizace znamená zpozornět, dva roky a víc už berte jako varování.
  • Kompatibilita s verzí WordPressu (Tested up to). Katalog sám upozorňuje, když plugin nebyl testován s posledními třemi hlavními verzemi. To upozornění neignorujte.
  • Záložka podpory a changelog. Odpovídá autor na dotazy? Vydává opravné verze? Deset měsíců starých nezodpovězených dotazů mluví jasně.

U placených pluginů a šablon platí totéž, jen si údaje musíte najít u prodejce. Pozor hlavně na „nulled“ verze stažené odjinud než od autora – ty bývají doslova nachystané tak, aby útočníkovi otevřely dveře. Chcete-li jít dál, prohlédněte si databáze zranitelností Patchstack nebo WPScan; dá se v nich vyhledat konkrétní plugin a zjistit, v jaké verzi je chyba opravená.

Když plugin zmizí z katalogu

Tohle je zrada, kterou spousta lidí vůbec nezaznamená. WordPress.org může plugin z katalogu uzavřít – třeba kvůli bezpečnostní chybě, kterou autor neopravil. Plugin pak už nejde nainstalovat, a hlavně: přestane Vám nabízet aktualizace. Na webu si přitom běží dál, jako by se nic nestalo.

Že to není teoretická hrozba, dokládá i tento návod. Ve starší verzi jsem tu doporučoval plugin na bezpečnostní otázky na přihlašovací obrazovce. Ten je dnes na wordpress.org uzavřený od 15. června 2021 s uvedeným důvodem „Security Issue“ (ověřeno 27. 7. 2026). Doporučení, které mělo web chránit, by tak dnes bylo přesně tím, na co si dát pozor.

Prakticky: jednou za čas si projděte nainstalované pluginy a ověřte, že jejich stránka v katalogu funguje. Narazíte-li na uzavřený plugin, hledejte náhradu a starý smažte – nejen deaktivujte. Deaktivovaný plugin je pořád na disku a jeho soubory jsou dosažitelné. Totéž platí pro nepoužívané šablony.

Tipy na účinné zvýšení zabezpečení WordPressu

Tipy jsou seřazené zhruba podle poměru „kolik to dá práce“ ku „kolik to přinese“. Nemusíte je dělat všechny najednou – když zvládnete první čtyři, máte za sebou většinu toho, co běžný automatizovaný útok zastaví.

1) Pravidelně aktualizujte WordPress, pluginy i šablony

Bude to znít možná jako klišé, ale pravidelná aktualizace WordPressu, jeho pluginů a šablon je alfou a omegou bezpečnosti webu – každá totiž „záplatuje“ zranitelnosti předchozích verzí. Nové aktualizace najdete v administraci v sekci Nástěnka → Aktualizace.

  • Bezpečnostní aktualizace jádra nasazujte hned, ne „až bude čas“. První automatizované pokusy o zneužití se objevují v řádu hodin od zveřejnění chyby.
  • Zapněte si automatické aktualizace alespoň pro drobná vydání jádra a zvažte je i u pluginů, které nejsou kritické pro vzhled webu. Vždycky je ale ověřte – mohou selhat kvůli právům k souborům, nastavení hostingu nebo konfliktu, a Vy o tom nemusíte vědět.
  • Před větší aktualizací zálohujte (viz tip 12) a ideálně ji vyzkoušejte na testovací kopii webu.
  • Aktualizujte i verzi PHP – staré verze už nedostávají bezpečnostní záplaty. Podrobněji to rozebírám v lekci Jak zrychlit WordPress.

A pak platí to nejjednodušší pravidlo ze všech: používejte co nejméně pluginů a nepoužívané rovnou mažte. Co na webu není, to se nedá zneužít.

2) Zkontrolujte zranitelnost WordPressu

Základním krokem, který můžete učinit hned teď, je otestování zranitelnosti WordPressu. K tomu slouží online nástroj WordPress Security Scanner, jehož základní test je zdarma. Sleduje verzi WordPressu, šablonu i prostředí Vašeho poskytovatele webhostingu. Dobrou službu prokáže také Sucuri SiteCheck Scanner, který hledá i známý škodlivý kód a zařazení domény na blacklist.

Výsledky ale berte s rezervou. Zelené „PASSED“ neznamená, že je web v pořádku – skener vidí jen to, co je zvenčí, k souborům na serveru ani do databáze se nedostane. Je to dobrý první krok, ne certifikát bezpečnosti.

3) Silné heslo a neobvyklé uživatelské jméno = základ zabezpečení WordPressu

Čím více neobvyklé přihlašovací jméno máte, tím menší je pravděpodobnost, že ho někdo „uhodne“. Nejméně bezpečná je jeho výchozí podoba, tj. „admin“ – a hned za ní jméno shodné s tím, co se zobrazuje u článků. Oddělte proto přihlašovací jméno od veřejně zobrazovaného; to druhé si nastavíte v profilu uživatele v poli Zobrazovat jméno veřejně jako.

U hesel se doporučení za poslední roky docela posunula. Aktuální podoba standardu NIST SP 800-63B, ze kterého vychází většina moderních příruček, říká tohle:

  • Rozhoduje délka, ne exotické znaky. Pro heslo, které je jediným ověřovacím prvkem, standard požaduje minimálně 15 znaků. Dlouhá fráze z několika slov je bezpečnější i zapamatovatelnější než osmiznakový shluk s vykřičníkem.
  • Povinná pravidelná změna hesla se už nedoporučuje. Lidé si totiž tvoří předvídatelné varianty toho původního. Heslo se má měnit tehdy, když je podezření, že uniklo. (Ano, oproti starší verzi tohoto návodu jsem doporučení právě proto změnil.)
  • Každá služba vlastní, jinde nepoužité heslo, a k tomu správce hesel. Nejčastěji se útočník nedostane dovnitř prolomením hesla, ale jeho použitím z cizího úniku dat.

Totéž platí pro FTP a SSH účty, účty u poskytovatele webhostingu, databázi, e-mailové účty i pro účet u registrátora domény.

4) Zapněte dvoufaktorové ověření (2FA)

Tohle je podle mě jediné opatření, které bych zařadil hned vedle aktualizací. Dvoufaktorové ověření znamená, že k přihlášení nestačí heslo – musíte ještě potvrdit totožnost druhým způsobem, nejčastěji šestimístným kódem z mobilní aplikace. Výhoda je zásadní: i když Vaše heslo unikne nebo ho někdo uhodne, samo o sobě mu k ničemu nebude.

  • Kód z aplikace (TOTP) – rozumný standard pro běžný web. Funguje s libovolnou autentizační aplikací a nepotřebuje signál ani připojení.
  • Bezpečnostní klíč nebo passkey – nejbezpečnější, nelze podvrhnout phishingovou stránkou. Vhodné hlavně pro administrátory.
  • Kód e-mailem nebo SMS – lepší než nic, ale nejslabší z možností. Schránka i telefonní číslo se dají útočníkovi zpřístupnit.

WordPress 2FA v základu nemá, řeší se pluginem. Z těch dlouhodobě a aktivně vyvíjených stojí za pohled Two Factor od komunity kolem WordPress.org a WP 2FA, který navíc umí 2FA vynutit celým rolím uživatelů. Bývá to i součást bezpečnostních pluginů z tipu 13. Hned při zapínání si uložte záložní jednorázové kódy mimo počítač i mimo web – ztráta mobilu bez nich znamená, že se do vlastní administrace nedostanete ani Vy.

5) Ohlídejte si uživatelské účty, role a přihlášené relace

Zlaté pravidlo zní: každý má jen tolik práv, kolik ke své práci opravdu potřebuje. Redaktor, který píše články, nepotřebuje instalovat pluginy.

  • Projděte seznam uživatelů a smažte účty lidí, kteří s webem už nepracují. Bývalý externista s dvouletým přístupem je zbytečné riziko.
  • Nepracujte denně pod administrátorským účtem. Pokud hlavně píšete, založte si druhý účet s rolí redaktora. A všímejte si nových účtů – nikým nezaložený administrátor je jeden z nejjasnějších příznaků napadení.
  • Změna hesla sama o sobě cizí přihlášení neukončí. WordPress proto v profilu nabízí tlačítko Odhlásit ze všech ostatních zařízení – používejte ho. Automatické odhlašování nečinných umí bezpečnostní plugin nebo rozšíření Inactive Logout.
  • Zvažte záznam změn (audit log). Pluginy jako Simple History nebo WP Activity Log zapisují, kdo se přihlásil, co změnil a kdy. Při řešení incidentu je to k nezaplacení.

6) Limitujte počet přihlašovacích pokusů

Může se stát, že se kdosi pokusí dostat do Vašeho účtu uhodnutím hesla. WordPress ve výchozím stavu počet pokusů neomezuje, takže robot může zkoušet donekonečna. Řešením je limit přihlašovacích pokusů – pluginy jako Limit Login Attempts Reloaded omezí opakované pokusy pro každou IP adresu a o nezvyklém chování Vás informují e-mailem. Alternativou je mj. Login LockDown.

Kolem přihlašovací obrazovky se dají udělat ještě dvě věci: sjednotit chybové hlášky (ve výchozím stavu WordPress prozradí, jestli bylo chybné jméno, nebo heslo, což útočníkovi potvrdí existující účet) a přidat CAPTCHA. Změna adresy přihlašování sníží hluk v logách, ale berte ji jako úklid, ne jako zabezpečení. Bezpečnostní otázky už nedoporučuji vůbec – odpovědi bývají dohledatelné na sociálních sítích a plugin, který jsem k tomu dřív doporučoval, je z katalogu stažený kvůli bezpečnostní chybě.

7) Zkontrolujte aplikační hesla a REST API

REST API je rozhraní, přes které s WordPressem komunikují jiné programy – mobilní aplikace, editor Gutenberg nebo propojení s e-shopem. Aby se mohly přihlásit, zavedl WordPress od verze 5.6 aplikační hesla: samostatné heslo, které si vygenerujete v profilu a kdykoliv zrušíte, aniž byste měnili to skutečné. Háček je v tom, že aplikační heslo obchází dvoufaktorové ověření (automat nemá jak opsat kód z mobilu), má práva svého uživatele a jeho založení je typický způsob, jak si útočník udrží přístup i po změně hesla do administrace.

  1. Podívejte se, jestli nějaká máte. Najdete je v Uživatelé → Profil, v sekci Aplikační hesla, u každého účtu zvlášť. Cokoliv, co nepoznáváte nebo už nepoužíváte, zrušte.
  2. Nevytvářejte je pod administrátorem, když to není nutné, a pojmenovávejte je srozumitelně. Připojení, které jen publikuje články, si vystačí s rolí redaktora.
  3. Pokud je nepoužíváte, vypněte je. WordPress na to má filtr wp_is_application_passwords_available; nastavením na false se možnost jejich vytváření skryje. Tuhle úpravu nechte na někom, kdo umí bezpečně editovat kód webu.

Samotné REST API úplně vypínat není dobrý nápad, stojí na něm i běžné funkce WordPressu včetně editoru. Rozumnější je omezit anonymní přístup k citlivým částem, což obvykle vyřeší firewall na hostingu nebo bezpečnostní plugin. Jak zneužití vypadá v praxi, ukazuje článek o zranitelnosti WP2Shell, kde se přes REST API dá spustit cizí kód bez jakéhokoliv přihlášení.

8) Zakažte úpravy souborů z administrace

WordPress má v administraci vestavěný editor souborů šablony a pluginů. Vypadá to pohodlně, ale je to nejrychlejší cesta, jak z ukradeného přihlášení udělat plnou kontrolu nad webem – útočník vloží do šablony pár řádků kódu a má hotovo, aniž by potřeboval FTP. Oficiální příručka WordPressu proto doporučuje editor vypnout konstantou v wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

Řádek vložte kamkoliv nad komentář „That’s all, stop editing!“. Většina bezpečnostních pluginů umí totéž přepínačem. Prakticky nic tím neztratíte – šablonu i pluginy jde dál upravovat přes FTP.

9) Nastavte práva k souborům a ochraňte wp-config.php

Když jsou práva k souborům příliš benevolentní, může škodlivý skript – klidně z úplně jiného webu na tomtéž sdíleném hostingu – přepsat soubory toho Vašeho. Oficiální příručka zabezpečení WordPressu uvádí jako rozumný výchozí stav:

  • složky 755 a soubory 644 – tedy zapisovat může jen vlastník, ostatní pouze čtou;
  • soubor wp-config.php přísněji, 400 nebo 440 – jsou v něm přístupové údaje k databázi i bezpečnostní klíče;
  • nikdy 777. Radí-li Vám nějaký návod „nastavte 777, ať to funguje“, zavřete ho – znamená to, že do složky smí zapisovat kdokoliv.

Práva změníte přes FTP klienta (pravým tlačítkem na soubor → oprávnění) nebo ve správci souborů na hostingu. Kolem wp-config.php se dá udělat ještě víc: přesunout ho o adresář výš, mimo veřejnou složku webu (WordPress si ho tam najde), a zakázat k němu přímý přístup v .htaccess; připravený kód najdete v příručce výše. A ještě jedna drobnost: ve složce wp-content/uploads by nemělo jít spustit PHP. Obrázky ano, skripty ne. Řada hostingů to má ošetřené, jinak to nastaví bezpečnostní plugin.

10) Vynuťte HTTPS a přidejte bezpečnostní hlavičky

Kvalitní poskytovatelé hostingu nabízejí SSL certifikáty čili fungování stránek pod protokolem HTTPS, který chrání spojení mezi serverem a návštěvníky. U většiny českých hostingů ho dostanete zdarma. Ověřte si k němu tři věci: že se web z HTTP trvale přesměruje na HTTPS, že je adresa s HTTPS nastavená i v administraci (Nastavení → Obecné, obě pole) a že se na stránce nenačítá nic přes HTTP – smíšený obsah prohlížeč blokuje a zámeček zmizí.

O patro výš jsou bezpečnostní hlavičky – pokyny, které server posílá prohlížeči spolu se stránkou a říká mu jimi, co smí a co ne. Nastavují se v .htaccess, v konfiguraci hostingu nebo přes plugin:

  • Strict-Transport-Security (HSTS) – prohlížeč bude s webem komunikovat už napořád jen přes HTTPS. Nasazujte, až když HTTPS spolehlivě funguje všude.
  • X-Content-Type-Options – zabrání prohlížeči „hádat“ typ souboru a spustit ho jako skript.
  • Referrer-Policy – omezí, kolik se o adrese Vaší stránky posílá cizím webům.
  • X-Frame-Options, případně Content-Security-Policy s pravidlem frame-ancestors – znemožní vložení Vašeho webu do rámu na cizí stránce.

Jak na tom Váš web je, zdarma zkontroluje Mozilla HTTP Observatory. S plnou Content-Security-Policy to ale na WordPressu nepřehánějte – špatně nastavená dokáže rozbít editor i půlku webu.

11) Nepodceňujte roli kvalitního poskytovatele webhostingu

Kvalitní poskytovatel webhostingu je zásadním prvkem v budování bezpečných webových stránek. Poskytovatelé jako Vedos či Blueboard, anebo Český hosting, přijímají důležitá opatření k ochraně svých serverů před běžnými riziky online světa. U sdílených hostingů (tzv. multihostingů) je ale prostor na serveru sdílen s ostatními uživateli, takže při nákaze jednoho webu může snadněji dojít k ohrožení webů „sousedících“.

Když hosting vybíráte s ohledem na bezpečnost, ptejte se na tohle:

  • Jak dlouho drží zálohy a jestli si obnovu spustíte sami. Sedmidenní historie Vám při pomalu se šířící nákaze pomůže mnohem víc než záloha z včerejška.
  • Jestli nabízí aktuální verze PHP, jestli má před webem firewall (WAF) a jestli jsou účty na sdíleném serveru od sebe oddělené.
  • Jaká je podpora, když se něco stane. V noci, o víkendu, česky. Tohle poznáte až v nejhorší chvíli, takže se vyplatí číst recenze předem.

Ideální jsou spravované hostingy specializované na redakční systém WordPress – obvykle nabízejí pravidelnou aktualizaci, zálohování i pokročilejší zabezpečení. Srovnání najdete v přehledu nejlepších webhostingů, výběr rozebírá lekce Jak vybrat hosting pro WordPress.

60% SLEVA NA WEBHOSTING NOLIMITpři objednávání použijte slevový kód.

12) Pravidelně zálohujte WordPress

Obnova ze zálohy je „první pomocí“ při jakémkoli napadení či poškození stránek. Osobně můžu doporučit plugin All-in-One WP Migration (zvládne ho i uživatel bez technických znalostí), dlouhodobě osvědčený UpdraftPlus a pro zkušenější Duplicator. Řada hostingů zálohuje i sama, což je fajn druhá vrstva – ale nespoléhejte se jen na ni.

Důležitější než volba pluginu je způsob, jakým zálohujete. U napadeného webu se rozdíl mezi „mám zálohy“ a „dostanu se z nich zpátky“ ukáže rychle:

  • Ukládejte zálohy mimo web – na Dropbox, Google Drive nebo cizí FTP. Záloha ležící ve složce webu je při napadení serveru k ničemu.
  • Držte víc verzí zpátky. Škodlivý kód se projeví někdy až za pár dní a s jedinou zálohou obnovíte i to, co jste chtěli odstranit.
  • Zálohujte soubory i databázi, ne jenom jedno z toho.
  • Alespoň jednou si obnovu vyzkoušejte. Netestovaná záloha není záloha, je to naděje.

13) Nainstalujte si kvalitní bezpečnostní plugin

Bezpečnostní plugin obvykle sdružuje většinu toho, o čem je řeč výš – limit přihlašovacích pokusů, 2FA, kontrolu integrity souborů, skenování škodlivého kódu i zákaz editace souborů – a ušetří Vám tak instalaci pěti drobných rozšíření. Z těch dlouhodobě a aktivně vyvíjených stojí za pozornost:

  • All-In-One Security (AIOS) – přehledné komplexní řešení, které opatření vysvětluje a řadí podle náročnosti.
  • Wordfence Security – firewall a skener škodlivého kódu přímo ve WordPressu, jeden z nejrozšířenějších vůbec.
  • Sucuri Security – hodí se hlavně na sledování změn souborů a záznam událostí.

Konkrétní nastavení tady schválně nepopisuji – rozhraní se u těchto pluginů mění často a návod by rychle zastaral. Držte se principu: projděte nastavení po sekcích, začněte tím, co plugin sám označuje jako základní, a po každé změně zkontrolujte, že web i administrace fungují. A pozor na dvě věci: neinstalujte dva bezpečnostní pluginy současně (bijí se spolu a výsledkem bývá rozbité přihlašování) a počítejte s tím, že plugin běží uvnitř WordPressu, takže útok zachytí až ve chvíli, kdy se k němu požadavek dostane. Firewall na úrovni hostingu je o vrstvu dřív – ideální je obojí.

14) Nezapomínejte na to, co je kolem webu

Kromě bezpečnostního pluginu potřebujete i kvalitní antivirový program na svém počítači. Pokud se Vám do PC dostane škodlivý software, můžete skrze něj útočníkům snadno poskytnout přístupové údaje (nejen) k WordPressu. Web ale nekončí u WordPressu – zamyslete se i nad tímhle:

  • E-mailová schránka administrátora. Přes ni jde obnovit heslo do WordPressu, na hosting i k doméně. Je to hlavní klíč od všeho a patří na ni 2FA jako první.
  • Účet u registrátora domény. Kdo ovládne doménu, přesměruje si Váš web kamkoliv, i kdyby byl samotný WordPress neprůstřelný.
  • Hesla k FTP uložená v programech v otevřené podobě. Škodlivý software je v počítači cíleně hledá.
  • Správa webu z cizích počítačů. Pokud musíte, po dokončení se odhlaste a heslo změňte.

15) Změňte výchozí předponu WordPressu v databázi a zakažte prohlížení adresářů

Před instalací WordPressu je možné zvolit předponu jeho databázových tabulek. Výchozí tvar je „wp_“ a řada automatizovaných útoků typu SQL injection s ním přímo počítá, takže ji doporučuji změnit hned při instalaci. Buďme ale upřímní: u už běžícího webu je to opatření s nejhorším poměrem rizika a přínosu z celého seznamu. Dodatečná změna znamená zásah do databáze i do wp-config.php a udělat ji špatně znamená nefunkční web. Máte-li omezený čas, věnujte ho radši aktualizacím, 2FA a zálohám.

Druhá věc je prohlížení adresářů. Útočníkovi prozradí, jaké soubory na webu máte, a tím i to, jestli mezi nimi nejsou známé zranitelnosti. U řady poskytovatelů webhostingu je zakázáno už ve výchozím stavu. Pokud ne: připojte se přes FTP, v kořenovém adresáři najděte soubor .htaccess, stáhněte si ho, udělejte si jeho kopii (chyba v něm dokáže shodit celý web) a na konec vložte řádek „Options -Indexes“. Pak ho nahrajte zpátky.

Co dělat, když je WordPress napadený

Prevence je hezká věc, ale spousta lidí se k tomuhle návodu dostane až ve chvíli, kdy je pozdě. Tak si pojďme říct, co dělat, když se web chová divně nebo když od hostingu přijde e-mail, že jste rozeslali deset tisíc spamů.

Podle čeho poznáte, že je něco špatně

Napadený web většinou nevypadá jako z filmu. Útočníkovi jde o to, udržet si přístup co nejdéle, takže titulku obvykle nikdo nepřebarví. Typické příznaky jsou spíš tyhle:

  • Uživatel s právy administrátora, kterého jste nezakládali, změněná e-mailová adresa správce nebo nová aplikační hesla, která jste nevytvořili (viz tip 7).
  • Návštěvníci se z vyhledávání přesměrují jinam, zatímco Vám se web zobrazuje normálně. Přesměrování bývá cílené jen na příchozí z vyhledávače nebo z mobilu.
  • Ve vyhledávači se u Vaší domény objevily cizí stránky – nabídky léků, hazardu, napodobenin. Bývá to vidět dřív v Google Search Console než na webu.
  • Neznámé soubory .php ve složce wp-content/uploads, v cache nebo v kořeni webu, případně soubory jádra a šablony s podivně zamotaným kódem.
  • Skokový nárůst odchozích e-mailů, varování od hostingu nebo zařazení domény na blacklist.

Jeden příznak sám o sobě nic nedokazuje – neznámý soubor může být pozůstatek špatně odinstalovaného pluginu. Kombinace nálezů nebo provoz na známé zranitelné verzi už ale vyžaduje rychlou reakci.

Postup krok za krokem

  1. Nepanikařte a nic nemažte. První reflex bývá smazat podezřelý soubor. Tím ale přijdete o stopy, podle kterých se dá zjistit, kudy se útočník dostal dovnitř – a když to nezjistíte, vrátí se.
  2. Zazálohujte současný, tedy napadený stav – soubory, databázi a hlavně serverové logy. Uložte je mimo veřejnou část webu; slouží to k analýze, ne k obnovení.
  3. Web dočasně vypněte, pokud rozesílá spam, přesměrovává návštěvníky nebo je na něm podvodná stránka, a řekněte to hostingu. Ten vidí věci, které Vy ne – logy, odchozí poštu, zatížení – a často má hotový postup i vlastní zálohy.
  4. Aktualizujte WordPress, pluginy i šablony na nejnovější verze. Tím zavřete díru, pokud šlo o známou zranitelnost.
  5. Změňte úplně všechna hesla – WordPress, hosting, FTP/SSH, databáze, e-mail, doména. Zrušte všechna aplikační hesla a odhlaste všechny relace.
  6. Vygenerujte nové bezpečnostní klíče (tzv. salts) v wp-config.php – zneplatníte tím všechna existující přihlášení včetně útočníkova.
  7. Nahraďte soubory čistými. Jádro, pluginy i šablony přepište čerstvě staženými originály. Vlastní úpravy si předtím uložte stranou a projděte řádek po řádku.
  8. Projděte databázi (neznámí uživatelé, cizí JavaScript v obsahu, spamové odkazy, změněná adresa webu) i to, co je mimo WordPress – naplánované úlohy na hostingu, přesměrování v .htaccess, cizí SSH klíče, přeposílání e-mailů.
  9. Ověřte, že je web čistý – externím skenerem (tip 2) a pohledem do Google Search Console. Byla-li doména označená jako nebezpečná, požádejte tam o nové posouzení.
  10. Teprve teď zabezpečte web podle tipů výše a několik týdnů ho sledujte. Opakované napadení pár dní po „vyčištění“ znamená, že někde zůstala zadní vrátka.

Čtyři věty, které při obnově slýchám nejčastěji a které neplatí: „Obnovím zálohu a mám hotovo“ (záloha nezavře díru, kterou se útočník dostal dovnitř). „Obnovím tu poslední“ (ta už může být nakažená – zjistěte, odkdy se web chová divně). „Skener nic nenašel, takže je čisto“ (skenery hledají známé vzorce, ručně napsaná zadní vrátka poznají jen někdy). „Změnil jsem heslo do WordPressu“ (nestačí, dokud nezrušíte aplikační hesla a nezměníte přístupy k hostingu a FTP).

Kdy to předat odborníkovi? Když jde o e-shop nebo web se zákaznickými daty, když se nákaza po vyčištění vrátí, když si nejste jistí prací se soubory a databází, nebo když může hrát roli ohlašovací povinnost při úniku osobních údajů. Odborná kontrola bývá levnější než měsíc dohadování s vyhledávači a zákazníky.

Jak takový incident vypadá od oznámení zranitelnosti po kontrolu webu, popisuji v článku WP2Shell: kritická chyba ve WordPressu umožňuje napadení bez přihlášení. Najdete tam i to, které verze jsou dotčené a co hledat v logách.

Bezpečnostní minimum ve zkratce

Projít všechny tipy najednou nedává smysl. Když se mě někdo zeptá, čím začít, doporučuji tohle pořadí:

Co udělatJak častoNáročnost
Aktualizovat WordPress, pluginy a šablonyprůběžně, bezpečnostní hnednízká
Zapnout 2FA administrátorůmjednorázověnízká
Ověřit, že zálohy běží a jdou obnovitnastavit jednou, ověřit 2× ročněstřední
Nasadit bezpečnostní plugin a limit přihlášeníjednorázověnízká
Projít uživatele, role a aplikační heslačtvrtletněnízká
Smazat nepoužívané pluginy a ověřit, že žádný není opuštěný ani uzavřenýčtvrtletněnízká
Zakázat editaci souborů z administrace a zkontrolovat práva k souborůmjednorázověstřední
Vynutit HTTPS a přidat bezpečnostní hlavičkyjednorázověstřední
Změnit předponu databázových tabulekpři zakládání webuvysoká

Nemusíte být odborník na bezpečnost. Stačí, když prvních pět řádků nebudete odkládat – tím odfiltrujete drtivou většinu automatizovaných útoků, kterým běžný web čelí.

Kam pokračovat

Zabezpečení je jen jedna část dobře fungujícího webu. Až ho budete mít vyřešené, pokračujte lekcemi Jak zrychlit WordPress a SEO optimalizace WordPressu, případně si projděte šablony pro WordPress. Vybíráte-li teprve hosting, začněte lekcí Jak vybrat hosting pro WordPress. A kdykoliv se můžete vrátit na rozcestník WordPress návod.