Zde si popíšeme několik způsobů, jak lépe zabezpečit web používající
WordPress. Nejprve však jedno upozornění - jedno z nejdůležitějších pravidel je
udržovat WordPress aktualizovaný na poslední verzi, stejně tak i nainstalované pluginy (či témata vzhledu).
Před instalací
Nejprve je vhodné změnit prefix databáze v souboru
wp-config-sample.php
z původního prefixu:
$table_prefix = 'wp_';
na nějaký jiný:
$table_prefix = '1w27p_';
Po změně přejmenujte z
wp-config-sample.php
na
wp-config.php
a přejděte k normální instalaci.
Po instalaci
Po instalaci
WordPress nastaví přihlašovací jméno na
admin
- toto je dobré změnit na jiné. Zároveň by heslo mělo být odolné - nejlepší je vygenerovat si silné heslo pomocí některých
on-line generátorů hesel.
Zabezpeční adresáře wp-admin
Dále je vhodné omezit přístup do složky
wp-admin
dle IP adresy administrátora (či více administrátorů). Toho lze docílit vytvořením souboru
.htaccess
s tímto obsahem:
Deny from all
Allow from <Your IP>
Přístup do adresáře wp-admin
je vhodné zabezpečit i přes heslo.
Zabezpečení souboru wp-config.php
Soubor
wp-config.php
lze zabezpečit dvěma způsoby - buď přesunout tento soubor o adresář výše (což na mnoha serverech znamená mimo dosah běžných návštěvníků) nebo přístup k němu můžete omezit v souboru
.htaccess
:
<files wp-config.php>
order allow,deny
deny from all
</files>
Zabezpečení adresářů wp-includes
a wp-content
Poté je vhodné omezit i přístup k většině souborů ve složkách
wp-includes
a
wp-content
- přístup povolíme pouze k obrázkům, CSS a JavaScript souborům. Toto zařídíme přidáním následujících řádek do souboru
.htaccess
:
Order Allow, Deny, Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">Allow from all</Files>
Jiný způsob (dle
WordPress Security) a mnou
doporučovaný je:
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
# BEGIN WordPress
...
Poznámka: Kód výše musí být mimo tagy
# BEGIN WordPress
and
# END WordPress
jinak může dojít k přepsání při změně nastavení systému
WordPress.
Také je třeba si uvědomit, že toto nebude správně fungovat na
Multisite, protože
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
zabrání souboru
ms-files.php
v generování obrázků. Pokud tento řádek přeskočíte, bude generování fungovat, ale znamená to i méně bezpečnosti.
Zakázání editování souborů
V případě, že více uživatelů s administrátorskými právy je také vhodné zakázat přímou editaci souborů z administrace, v tom případě přidejte na konec souboru
wp-config.php
tento řádek:
define('DISALLOW_FILE_EDIT', true);
Zakázání XMLRPC
Pokud k přístupu používáte pouze defaultní webové rozhraní je vhodné i zakázat XMLRPC - toto provedete přidáním následujícího řádku na konec souboru
wp-config.php
:
add_filter('xmlrpc_enabled', '__return_false');
Pluginy pro vyšší zabezpečení
Níže najdete několik užitečných pluginů, které zvýší zabezpečení vašeho webu. Osobně povětšinou používám kombinaci prvních dvou pluginů, ale pluginů s podobnou tématikou existuje
daleko více.
Tento plugin umožní omezit počet přihlašovacích pokusů - to je užitečné pro bránění se tzv.
brute force typu útoků.
Plugin nabízí prozkoumání vaší instalace systému
WordPress z hlediska zabezpečení. Po instalaci a aktivaci pluginu přejděte na stránku jeho nastavení a zaškrtněte následující možnosti:
- Hide WordPress version for all users but administrators
- Remove various meta tags generators from the blog's head tag for non-administrators.
- Remove Really Simple Discovery meta tags from front-end
- Remove Windows Live Writer meta tags from front-end
- Disable error reporting (php + db) for all but administrators
- Remove core update notifications from back-end for all but administrators
- Remove plug-ins update notifications from back-end
- Remove themes update notifications from back-end
- Remove login error notifications from front-end
- Hide admin notifications for non admins
- Remove the version parameter from urls
Aktuální míru zabezpečení a případné chyby můžete prozkoumat v administraci na stránkách
Secure WP -> Nástěnka
(
Dashboard
) a
Secure WP -> Scanner
.
Wordfence Security je plugin nabízející lepší zabezpečení vašeho webu a zahrnuje firewall, aktuální statistiky provozu s geolokací a další vlastnosti.
U tohoto pluginu je velký rozdíl mezi neplacenou a placenou verzí - pokud si pořídíte placenou verzi je to dobrá náhrada za předchozí plugin v opačném případě je lepší použít
Acunetix Secure WordPress.
Ostatní
Pokud chcete ještě lepší zabezpečení proti mailware a spamu můžete také použít placené služby jako jsou
Akismet či
Securi - obě jsou prověřené a nabízejí výbornou spolupráci se systémem
WordPress.
Zdroje