WordPress návody

Kompletní průvodce zabezpečením WordPress stránky

Zabezpečení WordPress stránky
Autor příspěvku Tomáš Cirkl

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 blacklistovováno kvůli malwaru nebo phishingu. Pokud to se svou webovou stránkou myslíte vážně, tak 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ářů, tak existuje spoustu dalších věcí, které je možné udělat a vylepšit 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ů

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ží 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 zabeč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ší způsob, 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, tak si můžete 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.

iThemes Security

iThemes Security

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í.

iThemes Security - Security Check

iThemes Security – Security Check

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, tak 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.

iThemes Security - Security Check Network

iThemes Security – Security Check Network

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, tak jej plugin 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.

Site Lockouts

Site Lockouts

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, tak musíte využít jiné způsoby:

  1. Vytvoření nového administračního účtu a smazání starého.
  2. Využití pluginu pro změnu uživatelského jména.
  3. Ú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.

Automaticky banovat uživatele admin

Automaticky banovat uživatele admin

Deaktivování zabudovaného editoru

WordPress obsahuje zabudovaný editor kódu pro šablony a pluginy. Této funkce je možné zneužít a tak 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.

File Editor

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.

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 ty to 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.

PHP in Uploads

PHP in Uploads

Alternativně si to můžete udělat sami tak, vytvoříte soubor .htaccess (například pomocí programu Notepad) a vložíte do něj následující kód:

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.

Local Brute Force Protection

Local Brute Force Protection

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á, tak opět usnadňuje 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.

Změna prefixu databáze pomocí iThemes Security

Změna prefixu databáze pomocí iThemes Security

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, tak budete moci zadat Login Slug a změnit URL pro přihlášení do WordPress.

Změna URL přihlašovacího formuláře

Změna URL přihlašovacího formuláře

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.

Directory Browsing

Directory Browsing

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, tak by musel jít a 500x vyplnit přihlašovací formulář. Nicméně to by ho 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 natavit na Disable XML-RPC a uložit.

XML-RPC

XML-RPC

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í.

Inactive User

Inactive User

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.

Authentication Code při přihlášení

Authentication Code při přihlášení

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.

O autorovi

Tomáš Cirkl

Baví mě Internet a zvláště pak redakční systém WordPress. Jsem pravidelným účastníkem a přednášejícím na WordCamp Praha a WordPress konferencích.

Zanechat komentář

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!

Tomáš Cirkl

Tomáš Cirkl

WordPress specialista

Blog WPlama.cz píši už více než 3 roky. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.