Co je .htaccess a k čemu slouží?
.htaccess je konfigurační soubor serveru. Umožňuje autorovi stránek, aby si upravoval některé vlastnosti serveru pro příslušnou doménu (resp. adresář).
Většina uživatelů ví, že přes .htaccess můžete upravovat URL na tzv. „friendly-url“ vhodné pro SEO apod, ale o tom jindy. Nicméně toho umí mnohem více a o tom bude tento článek.
Jak .htaccess editovat a kde jej najdu?
.htaccess je soubor, který se píše s tečkou na začátku (běžný návštěvník k němu pak nemá přístup – lze jej požadovat do jisté míry, jako skrytý soubor) a lze ho editovat jakýmkoliv textovým editorem. Zvládne to i obyčejný poznámkový blok ve Windows. .htaccess běží a funguje pouze na serverech, kde je nainstalovaný Apache.
Většinou se nachází přímo v adresáři Vašeho WordPressu (celý dnešní článek je věnovaný WordPressu, tak proto tato formulace) viz:
1. Ochrana WordPress administrace
WordPress administrace se nachází v adresáři wp-admin. Přístup do této složky a tím do celé administrace můžeme regulovat právě přes .htaccess.
Můžeme nastavit, aby do administrace byl umožněn přístup pouze z konkrétní(ch) IP.
Přidáním tohoto kódu do .htaccessu umožníte přistup do administrace pouze z IP adresy xx.xx.xx.xxx
AuthUserFile /dev/nullAuthGroupFile /dev/nullAuthName „Blokace WordPress administrace“AuthType Basic<LIMIT GET>order deny,allowdeny from all# Moje IP adresaallow from xx.xx.xx.xxx# IP adresa webmasteraallow from xx.xx.xx.xxx</LIMIT>
xx.xx.xx.xxx je samozřejmě nutné nahradit vaší IP adresou. Zjistit jí můžete například na webu mojeip.cz
2. Zaheslování WordPress administrace
Pokud vám nestačí přístup do administrace omezený pouze na IP a nebo jej z nějakého důvodu nemůžete provést (např. z důvodu časté změny IP adresy apod.), tak můžete zaheslovat přístup do administrace WordPressu ještě přes .htaccess.
Prvním krokem bude vytvoření dalšího „souboru s tečkou“ 😀 Tentokrát budeme potřebovat ještě vytvořit soubor s názvem .htpasswds
Vytvořit jej můžete v libovolném textovém editoru a uložit bez koncovky a s tečkou na začátku. Případně stáhnout zde
Soubor obsahuje data pro login na tyto údaje:
Uživatel: admin
Heslo: admin
Důrazně doporučuji tyto údaje nepoužívat a změnit je na vlastní. Rovněž nedoporučuji, aby bylo přihlašovací jméno a heslo totožné s údaji, které používáte pro přihlášení do administrace.
Taková ochrana by pak postrádala smysl 🙂
Pro vygenerování dat do souboru .htpasswds můžete použít nějaký z online generátorů. Já jsem si vybral například ten z webu htaccesstools.com Funguje tak, že vložíte vámi požadované údaje (uživatelské jméno a heslo) a ono vám to přímo vygeneruje řádek, který pak jednoduše nakopírujete do .htpasswds.
Nyní je potřeba zanést tuto funkci do souboru .htaccess a to tímto kódem:
AuthUserFile /home/www/domena.cz/www/.htpasswd
AuthName „Libovolný text…“
AuthType Basic
require valid-user
Zde je potřeba, abyste cestu k vašemu .htpasswd souboru zanesli do .htaccess souboru správně – čili změnit AuthUserFile.
Zjistit absolutní cestu k souboru můžete v php například takto:
<?php
echo dirname(__FILE__);
?>
POZOR soubor .htaccess s tímto obsahem vložit pouze do složky, kterou chcete zaheslovat, čili do složky wp-admin
Přihlášení pak může vypadat například takto:
Po zadání správného uživatelského jména a hesla se vám zpřístupní administrace WordPressu.
3. Zákaz procházení souborů
Pomocí souboru .htaccess můžete rovněž zakázat procházení souborů na vašem webu. V praxi to znamená, že návštěvník webu (nemusí to být nutně útočník) si nebude moci zobrazit soubory na vašem webu. Pro pochopení to může vypadat třeba takto:
Přidáním následujícího kódu zamezíte procházení souborů na vašem webu.
Options -Indexes
4. Zákaz spuštění php scriptu v některých složkách
Spousta útočníků zanechává svoje scripty ve složkách /wp-content/uploads/ a nebo ve /wp-includes/. Obvykle se jedná o soubory s příponou .php se jmény, které vypadají jako jádrové soubory WordPress, ale nejsou. Jedním z opatření, které můžete použít ke zlepšení zabezpečení WordPressu, je zakázání spouštění PHP v určitých adresářích. Níže si ukážeme, jak můžete pomocí souboru .htaccess zakázat spuštění PHP v konkrétním adresáři.
Do .htaccess stačí vložit následující kód:
<Files *.php>deny from all</Files>
5. Ochrana konfiguračního souboru wp-config.php
Pravděpodobně nejdůležitějším souborem v kořenovém adresáři webu běžícího na WordPressu je soubor wp-config.php. Obsahuje informace o vaší databázi a způsob, jak se k ní připojit.
Chcete-li chránit soubor wp-config.php před neoprávněným přístupem, jednoduše přidejte tento kód do souboru .htaccess:
<files wp-config.php>order allow,denydeny from all</files>
6. blokování podezřelých IP adres
Všimli jste si, že z nějaké IP adresy jde na Váš web příliš mnoho requestů ,než je zdrávo? Můžete jí jednoduše zablokovat v souboru .htaccess a to tímto kódem:
Order Deny,Allow
Deny from xx.xx.xx.xxx
7. Samotná ochrana .htaccess souboru
Ve výše uvedených tipech jste se mohli dočíst, že .htaccess toho zvládá i mnohem více, než „fiendly-url“ a proto je potřeba i tento samotný soubor ochránit a zamezit jeho zneužití.
Stačí přidat následující kód:
<files ~ „^.*\.([Hh][Tt][Aa])“>order allow,denydeny from allsatisfy all</files>
To je prozatím vše. Používáte úpravu .htaccess souboru k prevenci proti útokům? Využíváte jiné způsoby?
Přidej komentář :)
Komentáře z blogu jsou dofollow