---
site_name: WPlama
site_description: Internetové stránky na WordPressu snadno a česky
site_url: https://www.wplama.cz
contact_email: tomas@wplama.cz

title: Zabezpečení WordPressu pomocí .htaccess
url: https://www.wplama.cz/zabezpeceni-wordpressu-pomoci-htaccess/
date: 2014-07-03
modified: 2014-07-03
author: Martin H.
type: post
categories: [WordPress návody]
tags: [bezpečnost, htaccess]
---

Wor Press je bezpochyby zdaleka nejpopulárnější redakční systém, což je jistě dobře, ale kvůli své oblíbenosti je také vystaven mnoha nebezpečím. Každý zná adresářovou a souborovou strukturu WordPressu, jeho slabá místa, pluginy, které se dají zneužít atd.

Jednou z neopomíjenějších metod zabezpečení jsou **pravidlné aktualizace** jádra WordPressu, pluginů a šablon. Aktualizace se často dokonce soustředí výhradně na **vylepšení bezpečnosti**, proto se snažte je neignorovat. Doporučujeme ještě **odstranit soubory *readme.html* a *license.txt***, které zobrazují nainstalovanou verzi WordPressu (aby hacker tak snadno nezjistil, jakých bezpečnostních děr může využít).

Existují samozřejmě **pluginy pomáhající s bezpečností** jako je [Login LockDown](https://wordpress.org/plugins/login-lockdown/), jenž loguje a případně zablokuje IP adresy, z nichž probíhá velký počet pokusů o přihlášení. Jmenovat můžeme také [iThemes Security](http://wordpress.org/plugins/better-wp-security/) nebo [WordFence Security](http://wordpress.org/plugins/wordfence/), něměli bychom však zapomínat na základní bezpečnostní prvky, které můžeme aplikovat bez použití externích nástrojů. Jedním z takových prvků je i soubor *.htaccess*, na který se nyní podrobněji podíváme ve spojitosti s bezpečností WordPressu.

## Nastavení souboru .htaccess

Soubor *.htaccess* ve výchozím nastavení WordPressu nabízí pouze základní funkčnost podrstrkávání pěkných url adres. Jeho možnosti jsou však mnohem širší a představíme si několik cest, jak s jeho pomocí zabezpečit vaší instalaci WordPressu.

Obsah *.htaccess* vypadá přibližně takto:

`<If Module mod_rewrite.c>

Rewrite Engine On

Rewrite Base /

Rewrite Rule ^index.php$ - [L]

Rewrite Cond %{REQUEST_FILENAME} !-f

Rewrite Cond %{REQUEST_FILENAME} !-d

Rewrite Rule . /index.php [L]

</If Module>`

*Poznámka: před provedením změn v souboru .htaccess ho nezapomeňte zálohovat! Nesprávné změny v .htaccess mohou způsobit nefunkčnost celého webu.*

Kódy, které si postupně uvedeme vkládejte za původní obsah, nepřepisujte ho.

### Ochrana wp-config.php

O zabezpečení konfiguračního souboru jsme hovořili na konci článku [„Nastavení WordPressu, která možná neznáte“](https://www.wplama.cz/nastaveni-wordpressu-ktera-mozna-neznate/). Pro připomenutí si uvedeme kód, který vložíte do *.htaccess*:

`# zabezpečení wp-config.php

<Files wp-config.php>

order allow,deny

deny from all

</Files>`

Tímto zamezíte komukoliv v přístupu k souboru *wp-config.php*.

### Přístup do administrace pouze z vaší IP adresy

Pomocí *.htaccess* lze snadno omezit přístup do adresáře s administrací, musíte ale **vytvořit nový *.htaccess*** soubor ve složce *wp-admin* na vašem serveru. Do nového souboru v administrační složce vložte tento kód:

`order deny,allow

allow from 111.111.111.111

deny from all`
*– nezapomeňte upravit IP adresu na tu svoji (jakou máte IP zjistíte například na [www.whatismyip.com](http://www.whatismyip.com/))*

Tímto zamezíte přístupu do administrace komukoliv s jinou IP adresou než je ta vaše. **Pozor ale na dynamické IP adresy** – pokud se vaše adresa často mění, budete ji muset měnit i v *.htaccess*. Jestliže přistupujete do administrace z více míst, musíte přidat nový řádek s IP adresou jiného počítače.

### Zabanování vybraných návštěvníků

Pokud zjistíte, že z nějaké IP adresy dochází k **nadměrnému počtu pokusů o přihlášení** nebo jen extrémnímu množství jiných http požadavků (např. pokusy o přidání komentáře), můžete takového uživatele snadno zabanovat pomocí následujícího kódu v *.htaccess*:

`<Limit GET POST>

order allow,deny

deny from 111.111.111.111

allow from all

</Limit>`

Další zabanované adresy snadno vložíte pomocí nové řádky „deny“, např.

`<Limit GET POST>

order allow,deny

deny from 111.111.111.111

deny from 222.222.222.222

allow from all

</Limit>`

### Zákaz prohlížení adresářů

S popularitou WordPressu roste i obeznámenost s tímto systémem, a to může být někdy na škodu. Pokud hacker zná **adresářovou strukturu webu** a může ji procházet, je pro něj jednodušší prolomit zabezpečení. Proto je lepší procházení adresářů zakázat přidáním:

`Options All -Indexes`

### Zákaz vstupu do wp-content

Adresář *wp-content* obsahuje **obrázky, šablony, pluginy** a celkově hraje velmi důležitou roli pro funkci WordPressu, proto by se k němu běžný návštěvník neměl dostat. Opět stačí vytvořit nový *.htaccess* soubor přímo v daném adresáři (wp-content). Uživatelům povolíme načítání pouze těch souborů, které nenaruší bezpečnost. Tímto krokem ochráníme důležité *.php* soubory.

`Order deny,allow

Deny from all

<Files ~ ".(xml|css|jpe?g|png|gif|js)$">

Allow from all

</Files>`

### Ochrana jednotlivých souborů

Přes *.htaccess* je možné chránit i jednotlivé soubory, například *.htaccess* samotný. Opět použijeme oblíbenou formulaci „order allow,deny“:

`<files .htaccess="">

order allow,deny

deny from all

</files>`

Název souboru můžete samozřejmě nahradit jakýmkoliv jiným.

### Zabezpečení .htaccess

Na webu se často nachází několik *.htaccess* souborů a nejlepším řešením je **chránit všechny** zároveň pomocí jednoho příkazu. Pomůžeme si regulárním výrazem:

`<Files ~ "^.*.([Hh][Tt][Aa])">

order allow,deny

deny from all

satisfy all

</Files>`

Tento kód zabrání komukoliv prohlížet všechny soubory, které začínají na „hta“.

### Závěrem

Podívali jsme se na to, jak lze **zvýšit zabezpečení** celého webu pomocí několika příkazů přidaných do souboru *.htaccess*. Seznam způsobů ochrany není vyčerpávající, jistě najdete mnoho dalších možností, jak zvýšit zabezpečení nebo jen vylepšit fungování webu. Rádi o nich uslyšmíme v komentářích a případně do článku doplníme.