Přejít k obsahu
BeoHosting
BeoHosting
WordPress

Bezpečnostní nastavení WordPressu, která musíte znát

BeoHosting Team··12 min čtení čtení
Bezpečnostní nastavení WordPressu, která musíte znát

Proč je zabezpečení WordPressu klíčové

Nejpoužívanější CMS pohání více než 43 % všech webů na internetu, což z něj dělá nejčastější cíl hackerů. Každý den dojde k přibližně 90 000 útokům na weby na WordPressu. Hackeři používají automatizované nástroje, které prohledávají internet a hledají weby se známými zranitelnostmi – nemusíte být prominentní cíl, abyste byli napadeni. Stačí jeden zastaralý plugin nebo slabé heslo.

Dobrá zpráva je, že většině útoků dokážete předejít aplikací základních bezpečnostních nastavení. Nemusíte být programátor ani bezpečnostní expert – stačí postupovat podle osvědčených kroků v tomto průvodci a aplikovat je na svůj web.

Ochrana souboru wp-config.php

wp-config.php je nejdůležitější soubor na vašem webu na WordPressu. Obsahuje přihlašovací údaje k databázi, bezpečnostní klíče, prefix tabulek a další zásadní konfiguraci. Pokud útočník získá přístup k tomuto souboru, má nad vaším webem plnou kontrolu.

Přesunutí wp-config.php

WordPress automaticky hledá wp-config.php o jeden adresář nad kořenem webu. To znamená, že tento soubor můžete přesunout z public_html/ do adresáře nad ním, kde k němu nelze přistupovat přes webový prohlížeč. Jde o jedno z nejjednodušších, ale nejúčinnějších ochranných opatření. Pokud váš hosting neumožňuje přístup k adresáři nad public_html, kontaktujte podporu cPanelu.

Bezpečnostní klíče a saltové řetězce

wp-config.php obsahuje 8 bezpečnostních klíčů (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY a jejich SALT páry), které slouží k šifrování cookies a relací. Pokud jsou tyto klíče výchozí nebo prázdné, jsou uživatelské relace zranitelné. Vygenerujte si unikátní klíče na stránce WordPress.org Secret Key API a vložte je do wp-config.php. Tyto klíče pravidelně obměňujte – tím automaticky odhlásíte všechny uživatele a zneplatníte existující cookies.

Zákaz úprav souborů

WordPress má vestavěný editor, který umožňuje upravovat PHP soubory šablon a pluginů přímo z administrace. To je obrovské bezpečnostní riziko – pokud útočník získá přístup k administrátorskému účtu, může přímo přes editor vložit škodlivý kód. Zakažte to přidáním řádku define('DISALLOW_FILE_EDIT', true); do wp-config.php. Tím se nezablokují aktualizace pluginů a šablon, jen se vypne přímá úprava kódu.

Režim ladění v produkci

Nikdy nenechávejte WP_DEBUG zapnutý na produkčním webu. Režim ladění zobrazuje návštěvníkům chyby a varování PHP, čímž odhaluje informace o struktuře webu, cestách k souborům a verzích softwaru. Na produkci nastavte define('WP_DEBUG', false);. Pokud potřebujete ladicí informace, použijte define('WP_DEBUG_LOG', true); spolu s define('WP_DEBUG_DISPLAY', false);, aby se chyby zapisovaly do souboru místo zobrazování návštěvníkům.

Oprávnění souborů

Správná oprávnění souborů jsou první linií obrany na úrovni serveru. Špatná oprávnění umožňují útočníkům číst, měnit nebo spouštět soubory na vašem serveru.

Doporučená oprávnění

WordPress doporučuje následující oprávnění: adresáře by měly mít 755 (vlastník může číst, zapisovat a spouštět; skupina a ostatní mohou číst a spouštět), soubory by měly mít 644 (vlastník může číst a zapisovat; skupina a ostatní mohou pouze číst), wp-config.php by měl mít 640 nebo 600 (číst a zapisovat může jen vlastník). Nikdy nepoužívejte oprávnění 777 – to znamená, že kdokoli na serveru může vaše soubory číst, zapisovat i spouštět.

Ochrana adresáře wp-includes

Adresář wp-includes obsahuje soubory jádra WordPressu, které by nikdy neměly být přímo přístupné. Přidejte do souboru .htaccess v kořenovém adresáři pravidlo, které blokuje přímý přístup k PHP souborům ve wp-includes. To útočníkům zabrání přímo spouštět soubory jádra, což je běžná technika útoků na WordPress.

Ochrana adresáře uploads

wp-content/uploads je jediný adresář, do kterého musí mít WordPress možnost zapisovat (pro nahrané obrázky, dokumenty atd.). Útočníci se často snaží nahrát škodlivý PHP soubor maskovaný jako obrázek a poté ho spustit. Zabraňte tomu přidáním pravidla .htaccess do adresáře uploads, které zakáže spouštění PHP souborů. To znamená, že i kdyby se útočníkovi PHP soubor nahrát podařilo, server ho nespustí.

Zákaz XML-RPC

XML-RPC (xmlrpc.php) je starší protokol, který umožňuje externím aplikacím komunikovat s WordPressem. Byl užitečný před příchodem REST API, ale dnes představuje významné bezpečnostní riziko.

Proč je XML-RPC nebezpečný

XML-RPC se používá ke dvěma typům útoků: útoky hrubou silou (útočník může v jediném XML-RPC požadavku otestovat stovky hesel metodou system.multicall, čímž obejde omezení počtu pokusů na přihlašovací stránce) a DDoS útoky (funkce pingback se dá zneužít k amplifikačním DDoS útokům, při nichž se váš web stane součástí botnetu). Většina moderních funkcí WordPressu (mobilní aplikace, Jetpack) používá místo XML-RPC rozhraní REST API.

Jak vypnout XML-RPC

Nejjednodušší způsob je přidat pravidlo .htaccess, které zablokuje přístup k souboru xmlrpc.php a vrátí stav 403 Forbidden. Případně použijte filtr v functions.php: add_filter('xmlrpc_enabled', '__return_false');. Tím se funkce XML-RPC vypne, ale přístup k souboru zůstane povolený (server tedy požadavek stále zpracovává). Pro úplné zablokování je lepší metoda přes .htaccess.

Bezpečnostní hlavičky

Bezpečnostní HTTP hlavičky jsou pokyny, které server posílá prohlížeči pro zlepšení zabezpečení webu. Nasazení těchto hlaviček nevyžaduje změny v kódu WordPressu – přidávají se do .htaccess nebo konfigurace nginx.

Content-Security-Policy (CSP)

Hlavička CSP řídí, které zdroje smí prohlížeč na vaší stránce načíst. Jde o nejúčinnější ochranu proti útokům XSS (Cross-Site Scripting), protože brání spuštění neautorizovaného JavaScriptového kódu. Začněte s hlavičkou Content-Security-Policy-Report-Only, abyste politiku otestovali bez blokování zdrojů, a poté přejděte do vynucovacího režimu. U WordPressu může být konfigurace CSP složitá kvůli inline skriptům a externím zdrojům, které šablony a pluginy používají.

X-Content-Type-Options

Hlavička X-Content-Type-Options: nosniff brání prohlížeči v hádání MIME typu souboru. Bez této hlavičky může útočník nahrát škodlivý soubor se špatnou příponou a prohlížeč se ho pokusí spustit na základě obsahu místo přípony. Jde o jednoduchou hlavičku bez negativních dopadů – vždy ji zapněte.

X-Frame-Options

Hlavička X-Frame-Options: SAMEORIGIN brání tomu, aby byl váš web načten uvnitř iframe na jiném webu. To chrání před útoky typu clickjacking, při nichž útočník překryje váš web průhledným iframe nad svým vlastním, aby uživatele přiměl kliknout na něco jiného. SAMEORIGIN povoluje iframe pouze ze stejné domény.

Strict-Transport-Security (HSTS)

Hlavička HSTS nutí prohlížeč vždy používat šifrované připojení HTTPS k vašemu webu. Jakmile prohlížeč hlavičku HSTS obdrží, bude automaticky přesměrovávat všechny HTTP požadavky na HTTPS, aniž by kontaktoval server. To chrání před útoky typu SSL stripping. Použijte Strict-Transport-Security: max-age=31536000; includeSubDomains (1 rok). DŮLEŽITÉ: HSTS zapněte teprve poté, co máte jistotu, že SSL na všech stránkách funguje správně.

Referrer-Policy

Referrer-Policy řídí, kolik informací prohlížeč odešle v hlavičce Referer, když uživatel klikne na odkaz. Referrer-Policy: strict-origin-when-cross-origin odesílá celou URL u požadavků v rámci stejného původu, jen původ u HTTPS požadavků napříč doménami a nic u HTTP požadavků. To chrání soukromí uživatelů a brání úniku parametrů URL na externí weby.

Další bezpečnostní nastavení WordPressu

Změna přihlašovací URL

Výchozí přihlašovací URL ve WordPressu je /wp-admin/ nebo /wp-login.php, kterou zná každý útočník. Změna přihlašovací URL na něco nestandardního (např. /muj-pristup/) eliminuje většinu automatizovaných útoků hrubou silou, protože boti přihlašovací stránku nenajdou. Pro snadnou změnu bez úprav souborů jádra použijte plugin jako WPS Hide Login.

Dvoufaktorové ověřování (2FA)

2FA přidává kromě hesla druhou vrstvu ochrany. I kdyby se útočník dozvěděl vaše heslo, nemůže se k účtu dostat bez druhého faktoru (obvykle kódu z telefonu). K nasazení 2FA pro všechny administrátorské účty použijte plugin jako Google Authenticator nebo Wordfence Login Security. Jde o jedno z nejúčinnějších ochranných opatření – eliminuje prakticky všechny útoky hrubou silou a credential stuffing.

Omezení počtu pokusů o přihlášení

WordPress ve výchozím stavu povoluje neomezený počet pokusů o přihlášení, což umožňuje útoky hrubou silou. Použijte plugin jako Limit Login Attempts Reloaded, který po určitém počtu neúspěšných pokusů zablokuje IP adresu (doporučeno: 3–5 pokusů). Pro další ochranu zkombinujte s CAPTCHA na přihlašovacím formuláři.

Pravidelné aktualizace

Toto je nejdůležitější bezpečnostní opatření ze všech. 86 % kompromitovaných webů na WordPressu používá zastaralou verzi WordPressu, šablony nebo pluginu. Zapněte automatické aktualizace pro menší (minor) verze WordPressu (bezpečnostní záplaty) a aktualizace pluginů a šablon kontrolujte alespoň jednou týdně. Neaktivní pluginy a šablony smažte, protože i deaktivovaný plugin může mít zranitelnost, kterou lze zneužít.

Závěr

Zabezpečení WordPressu není jednorázový úkol, ale nepřetržitý proces. Nastavení z tohoto průvodce zaveďte jedno po druhém: ochraňte wp-config.php, nastavte správná oprávnění souborů, vypněte XML-RPC, přidejte bezpečnostní hlavičky, změňte přihlašovací URL, zapněte 2FA a vše pravidelně aktualizujte. Každé z těchto opatření eliminuje celou kategorii útoků. V BeoHostingu se naše hostingové tarify dodávají s předkonfigurovanou ochranou na straně serveru, včetně WAF ModSecurity, automatizovaných záloh a skenování malwaru, ale ochrana na straně serveru funguje nejlépe v kombinaci se správně nakonfigurovaným WordPressem.

BeoHosting Team

10+ let zkušeností — Specialisté na webhosting a infrastrukturu

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Naposledy aktualizováno: