Jak zabezpečit WordPress bez pluginů, jen s pomocí .htaccess souboru

Tipů a triků na zabezpečení WordPressu je spousta. Většina z nich zahrnuje instalaci bezpečnostních pluginů třetích stran. Pokud však plugin instalovat nechcete, můžete vyzkoušet jednoduché nastavení s pomocí souboru .htaccess.

K čemu soubor .htaccess slouží?

Textový soubor umožňuje autorovi webových stránek nastavovat vybrané vlastnosti serveru. Nepotřebuje k tomu navíc plný přístup správce a ovlivňuje chování serveru pouze pro daný adresář a podadresáře na serveru. WordPress jej v základu využívá pro nastavení chování generovaných URL adres, aby byly přívětivé pro vyhledávače.

Kde najdu soubor .htaccess?

Soubor najdete v kořenové složce vašeho hostingu. Stačí se přihlásit k FTP za pomoci vybraného klienta a soubor byste měli vidět.

htaccess

Někdy se může stát, že soubor po přihlášení v FTP klientovi nevidíte. V takovém případě stačí v nastavení programu (nejčastěji Total Commander, WinSCP či FileZilla) vynutit zobrazování skrytých souborů.

Pokud soubor nevidíte ani tak, můžete jej na server nahrát manuálně, nebo stačí v nastavení WordPressu kliknout na „Nastavení“ > „Trvalé odkazy“  a zde změnit nastavení na jiné než základní a uložit. Nyní by již soubor měl na serveru být. Poté můžete nastavení přepnout zpět.

Jak .htaccess editovat?

Pro editaci souboru můžete využít libovolný textový editor od poznámkového bloku po vývojářský PSPad Editor. Před editováním souboru si proveďte jeho zálohu k sobě do PC, abyste v případě problémů mohli nastavení vrátit zpět.

htaccess linky

1. Zamkněte administraci před nezvanými hosty

Soubor .htaccess můžete využít např. k zabezpečení administrace webových stránek podle IP adresy. Připojit se tak do administrace webových stránek budete moci jen z konkrétních IP adres a míst. Tato metoda je vhodná tehdy, kdy se do nastavení připojujete pravidelně z jednoho PC či několika málo PC se statickou IP adresou. Použít pro to můžete následující kód, který nakopírujete do souboru .htaccess:

AuthUserFile /dev/null

AuthGroupFile /dev/null

AuthName "WordPress Admin Access Control"

AuthType Basic

<LIMIT GET>

order deny,allow

deny from all

# Povolená IP adresa 1:

allow from xx.xx.xx.xxx

# Povolená IP adresa 2:

allow from xx.xx.xx.xxx

</LIMIT>

Nezapomeňte také vyměnit povolené IP adresy za vlastní. Povolených adres může být, kolik chcete.

2. Chraňte administraci dalším heslem

Pokud se k WordPressu připojujete z různých míst a nechcete být limitováni konkrétní IP adresou, můžete využít zabezpečení heslem. Nejprve bude nutné za pomoci online generátoru vygenerovat .htpasswds soubor a následně jej nahrajte do složky, která není veřejně přístupná. Ideálně ve stylu:

/home/user/.htpasswds/public_html/wp-admin/passwd/

Nyní můžete přistoupit k samotnému .htaccess souboru, do kterého nakopírujte následující řádky kódu:

AuthName "Admins Only"

AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd

AuthGroupFile /dev/null

AuthType basic

require user putyourusernamehere

<Files admin-ajax.php>

Order allow,deny

Allow from all

Satisfy any

</Files>


Nezapomeňte nahradit cestu k souboru za „AuthUserFile“ za cestu odpovídající struktuře vašeho hostingu.

3. Zakažte procházení složek

Aby útočníci nemohli vidět, jaké soubory se na vašem hostingu nachází, můžete veřejné zobrazování obsahu složek zakázat. Tento krok doporučuje většina bezpečnostních odborníků.

Pro aktivaci stačí přidat jediný řádek do souboru .htaccess:

Options -Indexes

forbidden

4. Zakažte spouštění PHP souborů ve vybraných WordPress složkách

Častým způsobem, jak se útočníci snaží nabourat do redakčního systému je využití tzv. backdoorů (zadních vrátek). Často se jedná o soubor, který se útočníkovi povede propašovat na váš hosting, díky kterému může následně vykonávat další příkazy a ovládat váš web.

Jedním z řešení napomáhajících prevenci je vložení následujícího kódu do nového souboru .htaccess:

<Files *.php>

deny from all

</Files>

Soubor následně nahrajte do každé z následujících složek:

  • /wp-content/uploads/
  • /wp-includes/

5.  Zabezpečte soubor s konfigurací wp-config.php

Jedním z nejdůležitějších souborů na vašich WordPress stránkách je soubor wp-config.php. Obsahuje totiž přístupové údaje do databáze včetně hesel.

Pro zabezpečení souboru wp.config.php vložte do hlavního .htaccess souboru následující kód:

<files wp-config.php>

order allow,deny

deny from all

</files>

6. Zakažte přístup určitým IP adresám

Zaznamenali jste nezvykle vysoký počet požadavků na váš web z konkrétních IP adres? Pokud se vám zdá toto chování podezřelé, můžete zablokovat přístup na váš web konkrétním IP adresám.

Do .htaccess souboru přidejte následující řádky a nahraďte xxx za onu IP adresu:

<Limit GET POST>

order allow,deny

deny from xxx.xxx.xx.x

allow from all

</Limit>

7. Zakažte skenování autorů ve WordPressu

Oblíbenou technikou útočníků je tzv. útok hrubou silou. Pří něm nejprve dojde ke skenování, kdy útočníci zjistí přihlašovací jména autorů na webu. Poté už jim stačí provést slovníkový či brute force útok na jejich hesla a mohou tak získat přístup do administrace vašeho WordPressu.

Nejjednodušší cestou je zablokovat skenování autorů skrze .htaccess soubor:

# BEGIN block author scans

RewriteEngine On

RewriteBase /

RewriteCond %{QUERY_STRING} (author=\d+) [NC]

RewriteRule .* - [F]

# END block author scans

8. Zakažte přístup externích aplikací k WordPressu

Každá instalace WordPressu v sobě ukrývá soubor xmlrpc.php. Soubor umožňuje službám třetích stran přistupovat k WordPressu. Pokud žádnou takovou službu nepoužíváte, doporučují bezpečnostní odborníci zablokovat přístup k tomuto souboru.

Způsobů je více, my si však opět vystačíme s vložením následujících řádek kódu do .htaccess:

# Block WordPress xmlrpc.php requests

<Files xmlrpc.php>

order deny,allow

deny from all

</Files>

 

Tip na závěr: Zabezpečte samotný .htaccess před neautorizovaným přístupem

Jak jste mohli vidět výše, .htaccess dokáže ovlivnit mnohé. Proto je dobré zabezpečit i tento soubor před útočníky. Použít k tomu můžete následující řádky kódu:

<files ~ "^.*\.([Hh][Tt][Aa])">

order allow,deny

deny from all

satisfy all

</files>

Hodnocení článku

Průměrné hodnocení: 4.5/5

Počet hlasů: 186