Bezpečnost WordPress stránky je jednou z nejdůležitějších věcí, kterou by měl majitel webu zajistit. Každý týden je několik desítek tisíc webových stránek na Google blacklistováno kvůli malwaru nebo phishingu. Pokud to se svou webovou stránkou myslíte vážně, na zabezpečení WordPress nesmíte zapomenout. V tomto článku se podíváme na všechny základní bezpečnostní tipy, které vám pomůžou se bránit proti hackerům a malwaru.
I když je jádro redakčního systému WordPress obvykle velmi dobře zabezpečeno, protože se na jeho auditu podílejí stovky vývojářů, existuje spoustu dalších věcí, které je možné udělat a vylepšit tak zabezpečení stránky.
V případě, že chcete vylepšit bezpečnost WordPress stránky a nechcete se do zabezpečení pouštět sami, neváhejte nás poptat a my vám s tím rádi pomůžeme.
- Seznam bezpečnostních tipů
- Proč je bezpečnost WordPress stránky důležitá?
- Udržujte WordPress aktualizovaný
- Silná hesla a uživatelská práva
- Role webového hostingu
- Kvalitní šablona
- Zabezpečení WordPress bez znalosti programování
- Pokročilejší zabezpečení WordPress stránky
- Změna uživatelského jména admin
- Deaktivování zabudovaného editoru
- Deaktivování provádění PHP v určitých WordPress adresářích
- Omezení počtu pokusů o přihlášení
- Změna prefixu v databázi
- Změna URL přihlašovacího formuláře
- Deaktivování indexace a procházení adresářů
- Deaktivování XML-RPC
- Automatické odhlášení neaktivních uživatelů
- Dvoufázové přihlášení
Seznam bezpečnostních tipů
Základy zabezpečení WordPress
- Proč je bezpečnost WordPress stránky důležitá?
- Udržujte WordPress aktualizovaný
- Silná hesla a uživatelská práva
- Role webového hostingu
- Kvalitní šablona
Zabezpečení WordPress bez znalosti programování
- Nastavení zálohování
- Nejlepší bezpečnostní plugin
Pokročilejší zabezpečení WordPress stránky
- Změna uživatelského jména admin
- Deaktivování zabudovaného editoru
- Deaktivování provádění PHP v určitých WordPress adresářích
- Omezení počtu pokusů o přihlášení
- Změna prefixu v databázi
- Změna URL přihlašovacího formuláře
- Deaktivování indexace a procházení adresářů
- Deaktivování XML-RPC
- Automatické odhlášení neaktivních uživatelů
- Dvoufázové přihlášení
Proč je bezpečnost WordPress stránky důležitá?
Hacknutá webová stránka může způsobit vážné škody na vašem podnikání a reputaci. Hacker může ukrást informace o uživatelích, hesla, instalovat škodlivý software nebo distribuovat malware vašim uživatelům.
Nejhorší, co se pak může stát, je, že budete muset hackerovi zaplatit za to, abyste získali zpět přístup ke své webové stránce.
Pokud vaše webová stránka slouží k podnikání, měli byste WordPress bezpečnosti věnovat extra čas. Je už pak jedno, jestli se jedná o blog, který vydělává na reklamě, firemní prezentaci nebo internetový obchod.
Udržujte WordPress aktualizovaný
WordPress je otevřený software, který je pravidelně spravovaný a aktualizovaný. Ve výchozím nastavení WordPress automaticky instaluje jen minor (třetí číslo ve verzi) aktualizace. Major aktualizace (první nebo druhé číslo ve verzi) se musí aktualizovat ručně.
Pro WordPress je také dostupný bezpočet pluginů a šablon, které můžete do redakčního systému nainstalovat, a kterým také pravidelně vycházejí aktualizace od jejich vývojářů.
Tyto aktualizace jsou naprosto zásadní pro bezpečnost WordPress stránky. Vždy byste měli pravidelně kontrolovat, že WordPress jádro, šablona nebo pluginy jsou aktuální.
Více informací o WordPress aktualizaci najdete v článku Proč je důležité udržovat WordPress aktualizovaný.
Silná hesla a uživatelská práva
Nejčastějším způsobem, jak se hacker pokouší dostat do WordPress stránky, je pomocí prolomení hesla. Používáním silného hesla, které je pro každou stránku unikátní, můžete výrazně pomoci zabezpečení WordPress. Neplatí to jen pro heslo do WordPress administrace, ale také pro FTP, databázi, heslo do administrace hostingu nebo e-mailové adresy.
Nejčastějším důvodem, proč uživatelé nepoužívají silná unikátní hesla, je, že je těžké si je zapamatovat. Nicméně to není třeba, protože existuje velké množství správců hesel, které s tím pomůžou.
Dalším způsobem, jak snížit případné riziko, je nedávat přístup do administrace, pokud opravdu nemusíte. Pokud na stránce pracuje více lidí, ujistěte se, že všichni mají právě tu roli, která je pro ně dostačující. Jejich přehled a práva najdete ve článku Tvorba uživatelů a přehled uživatelských rolí ve WordPressu.
Role webového hostingu
Hosting hraje důležitou roli v bezpečnosti WordPress stránky. Kvalitní hosting se snaží co nejvíce ochránit své servery proti známým hrozbám.
Nicméně u sdíleného hostingu je na serveru několik webových stránek různých uživatelů. Kvůli tomu existuje riziko infikování webové stránky od někoho, kdo si web nezabezpečil.
Web hosting by se také měl starat o pravidelné zálohy souborů a databáze, aktualizace aplikací na serveru a měl by umožňovat jednoduchou instalaci SSL certifikátu. Doporučujeme Český hosting, který všechno zmíněné splňuje.
Kvalitní šablona
Na své stránky používejte šablony pouze z prověřených zdrojů. Určitě nevyužívejte různé servery, které nabízí prémiové šablony zdarma. Je velká pravděpodobnost, že tyto šablony obsahují hack a vy si ho nahrajete přímo do webu.
Použitá šablona by měla být neustále vyvíjená a poslední její aktualizace by měla být alespoň 6 měsíců zpět.
My nejčastěji využíváme šablonu Divi od WordPress specialisty Elegant Themes.
Z pohledu bezpečnosti prošla Divi šablona auditem od firmy Sucuri.net, která patří mezi nejuznávanější autority na poli internetové bezpečnosti.
Více o šabloně Divi najdete v článku Divi: Nejlepší WordPress šablona.
Zabezpečení WordPress bez znalosti programování
Práce na zabezpečení WordPress stránky může být pro začátečníky náročná.
Následující bezpečnostní tipy jsou netechnického zaměření a k jejich implementaci není potřeba znalosti programování.
Nastavení zálohování
Záloha je něco, co vám dokáže ušetřit spoustu peněz, nervů a času. Bohužel spoustu WordPress stránek nemá nastavené pravidelné zálohování.
Ze zálohy lze v případě problémů velmi rychle obnovit WordPress stránku.
V případě, že váš hosting zálohování neřeší za vás, můžete si vybrat z velkého množství zálohovacích pluginů zdarma. Nejdůležitější je, aby plugin pravidelně zálohoval celou webovou stránku (soubory + databázi) do cloudového úložiště. Určitě není dobré ukládat zálohy na hosting, ze kterého se záloha dělá. Vhodné je využít sllužby jako Google Drive nebo Dropbox.
Ideální varianta zálohování je 1x denně nebo okamžitá záloha po každé změně.
K pravidelnému zálohování 1x denně do cloudu můžete použít například plugin UpdraftPlus. Návod na jeho nastavení najdete v článku Jak vytvořit zálohu WordPress stránky do Google Drive.
Okamžité zálohování (real-time) umí například služba VaultPress.
Nejlepší bezpečnostní plugin
Po zajištění zálohování je důležité nastavit bezpečnostní plugin, který umí WordPress stránku zabezpečit a monitorovat.
Mezi kvalitní bezpečnostní pluginy patří například iThemes Security nebo Wordfence.
Je jedno, který z těchto pluginů si vyberete, důležité je však i jejich nastavení. Často se stane, že si uživatel nainstaluje bezpečnostní plugin, ale už nevěnuje čas jeho nastavení a to je velká chyba.
V tomto článku budeme používat návody pro iThemes Security plugin, který najdete zdarma v oficiálním katalogu pluginů a můžete jej nainstalovat přímo z WordPress administrace.
Po instalaci a aktivaci pluginu běžte do Security → Settings. Ihned byste měli vidět okno Security Check, kde vás plugin vybízí k nastavení základních funkcí.
Klikněte na tlačítko Secure Site a plugin povolí a nastaví:
- Banování uživatelů
- Zálohy databáze
- Lokální ochranu proti útoku hrubou silou
- Síťovou ochranu proti útoku hrubou silou
- Silná hesla
- Základní úpravy WordPress
Aby se plugin připojil do síťové ochrany proti útoku hrubou silou, budete muset zadat e-mail, na jehož základě získáte API klíč. Nemusíte se bát, jedná se o službu zdarma a na více webech můžete použít stejnou e-mailovou adresu. Zároveň můžete přepnout možnost ohledně newsletteru na „No“ (Ne). Nakonec klikněte na tlačítko Activate Network Brute Force Protection.
Network Brute Force Protection (Síťová ochrana proti útoku hrubou silou) je funkce, která web připojí do centrální databáze, kam se ukládají informace o známých útocích a v rámci připojených webů se sdílí. Takže pokud na váš web zaútočí někdo, kdo už byl v síti odhalen jako hacker, plugin jej automaticky zabanuje.
Až budete mít základní nastavení hotové, klikněte na tlačítko Close v levém dolním rohu.
Detailnější nastavení pluginu si ukážeme v dalších bezpečnostních tipech níže. Jediné, na co se ještě doporučuji se podívat, je e-mailové upozornění. Najdete jej v nastavení pluginu a dlaždici Notification Center.
Doporučujeme zde odškrtnout možnost Enable v sekci Site Lockouts. Jinak se vám může stát, že v případě útoku na váš web budete mít zaspamovanou e-mailovou schránku detailními informacemi o každém útoku (a těch může být i několik desítek nebo stovek za hodinu). Úplně stačí mít aktivní pouze Security Digest, kde dostanete v případě nějaké události shrnující e-mail.
Pokročilejší zabezpečení WordPress stránky
Vše, co jsme zatím popsali v tomto návodu, je základ bezpečnosti, který by měl být aplikován na každou WordPress stránku.
Nicméně vždy je možné na WordPress bezpečnosti pracovat dál.
Některé níže popsané tipy mohou vyžadovat určitou znalost programování a úpravy kódu.
Změna uživatelského jména admin
Dávat hlavní uživatelské jméno admin, je stejné jako o polovinu ulehčit práci hackerům, protože jej nebudou muset zjistit. Většina hackerů při pokusu prolomení hesla určitě vyzkouší uživatelské jméno jako admin, administrator a podobně. Z toho důvodu je dobré vytvářet unikátní uživatelská jména, které není možné předvídat.
V případě, že uživatelské jméno admin používáte, tak jej určitě co nejdřív změňte.
Protože WordPress neumožňuje změnu uživatelského jména z administrace, musíte využít jiné způsoby:
- Vytvoření nového administračního účtu a smazání starého.
- Využití pluginu pro změnu uživatelského jména.
- Úpravy uživatele před databázi a phpMyAdmin.
Změnu uživatelského jména pomocí pluginu jsme popsali v návodu Jak změnit uživatelské jméno admin ve WordPress.
V případě, že uživatelské jméno admin nepoužíváte, doporučujeme provést automatické zabanování uživatele, který se takto snaží přihlásit. Nejspíše se totiž jedná o hackera.
Možnost Automatically ban „admin“ user (Automaticky banovat uživatele admin) najdete v nastavení plugin iThemes Security v dlaždici Local Brute Force Protection úplně na konci.
Deaktivování zabudovaného editoru
WordPress obsahuje zabudovaný editor kódu pro šablony a pluginy. Této funkce je možné zneužít, proto je nejjednodušší ji vypnout. Editor se nachází v administraci WordPress Vzhled → Editor.
V případě, že máte iThemes Security, tak ten se automaticky o deaktivaci editoru postará. Nastavení se nachází v dlaždici WordPress Tweaks a jmenuje se File Editor.
V případě, že používáte jiný bezpečnostní plugin nebo si chcete Editor ve WordPress deaktivovat sami, můžete použít následující kód, který vložte do wp-confing.php.
// Deaktivace WordPress Editoru define( 'DISALLOW_FILE_EDIT', true );
Deaktivování provádění PHP v určitých WordPress adresářích
Ve WordPress jsou složky, ve kterých by se nemělo povolit vykonávat PHP. Mezi tyto adresáře určitě patří /wp-content/uploads/, kam se ukládají soubory nahrávané přes WordPress administraci.
iThemes Security umožňuje vypnout PHP ve složce Uploads přes dlaždici System Tweaks a možnost PHP in Uploads.
Alternativně si to můžete udělat sami tak, že vytvoříte soubor .htaccess (například pomocí programu Notepad) a vložíte do něj následující kód:
deny from all
Soubor poté nahrajte pomocí FTP do adresáře, ve kterém nechcete povolit vykonávání PHP.
Omezení počtu pokusů o přihlášení
Ve výchozím nastavení WordPress má uživatel neomezený počet přihlášení. To je bezpečnostní riziko vůči útoku hrubou silou, kde se hacker snaží heslo náhodně uhádnout.
Naštěstí to lze snadno napravit a počet pokusů o přihlášení omezit.
iThemes Security toto nastavení obsahuje v základu a jeho nastavení najdete v dlaždici Local Brute Force Protection. Můžete si zde nastavit počet pokusů o přihlášení i délku banu.
Alternativou může být použití pluginu WP Limit Login Attempts.
Změna prefixu v databázi
Ve výchozím nastavení používá WordPress prefix wp_ pro tabulky v databázi. Pokud vaše stránka tento prefix používá, usnadňuje opět hackerům práci s názvy tabulek. Z toho důvodu doporučujeme jej změnit.
iThemes Security umožňuje změnu prefixu databáze z jeho nastavení a dlaždice Change Database Table Prefix, která se nachází v záložce Advanced.
Před samotnou změnou se doporučuje udělat zálohu databáze.
Změna URL přihlašovacího formuláře
Standardně se ve WordPress dostanete na přihlašovací formulář přes několik různých URL:
- https://www.vasedomena.cz/wp-admin/
- https://www.vasedomena.cz/wp-login.php
- https://www.vasedomena.cz/admin
Tyto URL hackeři automaticky zkoušejí a snadno se tak dostanou na přihlašovací formulář, kde mohou zkoušet například útok hrubou silou.
V iThemes Security lze změnit URL přihlašovacího formuláře. Díky tomu výrazně zvýšíte zabezpečení přihlášení do WordPress.
Změnu URL přihlašovací stránky uděláte v nastavení iThemes Security, sekci Advanced a dlaždici Hide Backend.
Zde, když zaškrtnete políčko Hide Backend, budete moci zadat Login Slug a změnit URL pro přihlášení do WordPress.
Změněnou URL si nezapomeňte uložit, protože ji nikde nenaleznete a automatické přesměrování nebude fungovat.
Deaktivování indexace a procházení adresářů
Procházení adresářů může hackerům ulehčit práci tak, že zjistí, jaké soubory na hostingu máte. Když je pak znají, mohou využít jejich zranitelnosti a získat přístup.
Procházení adresářů může také lidem umožnit stahování souborů a zjištění souborové struktury. Z těchto důvodů je dobré kvůli WordPress bezpečnosti zakázat procházení adresářů.
iThemes Security umožňuje deaktivovat indexaci a procházení adresářů v jeho nastavení, dlaždici System Tweaks.
Položka se jmenuje Directory Browsing a stačí ji zaškrtnout a nastavení uložit.
Deaktivování XML-RPC
XML-RPC bylo povoleno ve verzi WordPress 3.5, protože pomáhá propojit WordPress a aplikace.
Nicméně protože se jedná o účinný nástroj, je možné přes něj vést útok hrubou silou.
Například, když chce hacker zkusit 500 různých hesel na vaši stránku, musel by 500x vyplnit přihlašovací formulář. Nicméně to by mu velmi rychle utnulo nastavení pro maximální počet pokusů přihlášení. Ale s XML-RPC může hacker použít funkci system.multicall a zkusit tisíce pokusů o přihlášení jen v pár desítkách dotazů.
Z toho důvodu je dobré, pokud XML-RPC nepoužíváte, jej vypnout.
iThemes Security umožňuje deaktivovat XML-RPC v jeho nastavení, záložku WordPress Tweaks. Nastavení se jmenuje XML-RPC a stačí jej nastavit na Disable XML-RPC a uložit.
Automatické odhlášení neaktivních uživatelů
Přihlášení uživatelé často nechávají záložku prohlížeče otevřenou, i když nejsou u počítače. Takto lze využít jejich session, změnit heslo a hned mají přístup do webu.
Spousta stránek proto používá automatické odhlášení po určité časové prodlevě.
Do WordPress přidáte tuto funkci pomocí pluginu Inactive Logout.
Po aktivaci pluginu běžte do Nastavení → Inactive Logout. Zde můžete upravit čas pro automatické odhlášení a zprávu, která se v případě automatického odhlášení uživatele objeví.
Dvoufázové přihlášení
Dvoufázové přihlášení pomocí Google Autheticator přidá do WordPress další bezpečnostní vrstvu, kdy se po klasickém přihlašovacím formuláři ještě dostanete na pole, kam musíte zadat bezpečnostní kód. Kód se generuje pravidelně každých pár sekund nový a k jeho vygenerování potřebujete propojit WordPress a mobilní aplikaci.
Dvoufázové přihlašování do WordPress přidáte pomocí pluginu Two-Factor.
Kompletní návod na nastavení dvoufázového přihlášení najdete v článku Jak přidat do WordPress dvoufázové přihlášení pomocí Google Authenticator.
V případě, že chcete vylepšit bezpečnost WordPress stránky a nechcete se do zabezpečení pouštět sami, neváhejte nás poptat a my vám s tím rádi pomůžeme.
Zdravím, akým spôsobom sa dá zistiť aké pluginy používa napríklad konkurencia? Existuje na to nejaký nástroj, ďakujem
Existují nějaké nástroje, jako například https://scanwp.net/, ale nikdy vám nenajdou všechno.
Zejména mohu doporučit https://inspectwp.com/en/wordpress-theme-detector
Po instalaci pluginy nejdou nahrávat obrázky do Knihovny Médií. Vždy vyskočí hláška „Vybraný soubor neprošel kontrolou během nahrávání“. Můžete mi poradit, jak se s tím vypořádat? :/
Dobrý den, používám All In One WP Security a rád bych se zeptal jestli lze vytvořit vyjímku pro cron?
Dobrý den, jak mohu odinstalovat – odstranit plugin iThemes Security, včetně navrácení WordPress prefix wp_ pro tabulky v databázi a dalšího nastavení?
Děkuji Dita
Plugin odinstalujete klasicky v sekci Pluginy. Bohužel tím prefix nevrátíte, zde si budete muset pomoci nějakým jiným pluginem nebo úpravou v DB.
Dobrý den.
Máte v plánu aktualizovat i tento článek ?
( Spousta začínajících uživatelů by aktualizované články které se zaměřunjí na rychlost a bezpečnost WP stránek určitě ocenilo )
Psal jsem vám dotaz i do vaší poradny. Tam jste ale neodpověděl tak to zkusím přímo zde.
Na závěr ještě děkuji že takovéto články ve svém volném čase pro WP komunitu zdarma vytváříte.
Děkuji.
Zdravím,
ano, když bude čas, budu se snažit článek aktualizovat.