Podíváme se na jednu z nejúčinnějších zbraní htaccess - ochranu složek heslem a vytváření uživatelských skupin...
Jednou z nejúčinnějších zbraní souboru .htaccess je ochrana heslem. Je to nejspolehlivější metoda ze všech.
Vytvoření zaheslované složky
Zaheslovanou složku vytvoříme vytvořením 2 souborů: .htaccess a .htpasswd. Vytvoříme nový soubor .htaccess, vložíme do něj požadované příkazy a soubor vložíme do složky, kterou chceme zaheslovat.
AuthUserFile /CESTA_K_SOUBORU/.htpasswd
AuthName "OZNACENI_SLOZKY"
AuthType Basic
require valid-user
AuthUserFile - popisuje cestu k souboru .htpasswd
AuthType Basic - definuje způsob autorizace
AuthName - k pojmenování chráněné oblasti (včetně uvozovek)
require valid-user - pouští jen uživatele se správným loginem a heslem
Za OZNACENI_SLOZKY si vyberte libovolný titulek složky, kterou si přejete zaheslovat. Soubor .htpasswd se může nacházet kdekoliv (jelikož díky cestě určíte jeho polohu), ale je doporučeno ho vkládat o úroveň výše, než je zaheslovaná složka.
Soubor .htpasswd obsahuje uživatelská jména a hesla:
uzivatelc1:hesloc1
uzivatelc2:hesloc2
uzivatelc3:hesloc3
uzivatelc4:hesloc4
Má to ale jeden háček. Heslo musí být vloženo v zašifrovaném formátu - k tomu je spousta nástrojů (nebo f-ce v PHP crypt(), jeden naleznete zde: http://www.euronet.nl/~arnow/htpasswd/, váš konečný seznam bude tedy vypadat takto:
uzivatelc1:zasifrovane_hesloc1
uzivatelc2:zasifrovane_hesloc2
uzivatelc3:zasifrovane_hesloc3
uzivatelc4:zasifrovane_hesloc4
Nyní, když se někdo pokusí k přístupu k zaheslované složce, zobrazí se mu výzva k zadání uživatlského jména a hesla. Je možno se k této složce dostat také pomocí http://uzivatel:heslo@www.server.cz/slozka/, kde použijete nezašifrované heslo.
Vytvoření uživatelských skupin
Chcete-li určitou část webu zpřístupnit pouze určeným uživatelům, můžete použít skupiny. Vytvořte soubor .htgroups a vložte do něj jména uživatelů ve skupině.
korektori: Davo Frosty Ninja
korektori je klíčové slovo pro skupinu - Davo, Frosty a Ninja jsou členové této skupiny. Teď už jen upravíme soubor .htaccess následovně:
AuthUserFile /CESTA_K_SOUBORU/.htpasswd
AuthGroupFile /CESTA_K_SOUBORU/.htgroup
AuthName "korektori"
AuthType Basic
require group korektori
Jak vidíte, zde se naskytuje příklad použití chyby pro nutnost autorizace - vytvoření této chybové stránky upozorňující na daný fakt.
Ochrana souboru .htaccess
Soubor .htaccess obsahuje celkem intimní informace nevhodné pro veřejnost, proto je dobré samotný soubor chránit. Například přidáním následujících řádek do souboru .htaccess:
<Files .htaccess>
order allow,deny
deny from all
</Files>
První a poslední příkaz oznamuje, že následující příkazy a pravidla se vztahují na dotyčný soubor.
V druhém řádku definujeme pořadí, ve kterém budou vyhodnoceny allow (povolit) a deny (zakázat).
Třetí řádek zakazuje veškerý přístup
Ochrana před linkováním
Určitě na svůj web ukládáte obrázky. Ostatní uživatelé ale tyto obrázky mohou klidně použít na svých stránkách - a tím vám zvyšují traffic (datový přenos) aniž by vůbec čtenář věděl, že dotyčný obrázek pochází z vaší stránky. Jednoduše vloží obrázek do své stránky, ale odkazuje na vaše stránky. Následujícím kódem zabráníme přístupům k obrázkům z cizí stránky.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?vasweb.cz/.*$ [NC]
RewriteRule .(gif|jpg|jpeg|png))$ http://www.vasweb.cz/zastaveni.jpg [R,L]
Díky tomuto kódu nejen že zabráníte zobrazení obrázku, ale místo něj se zobrazí obrázek zastaveni.jpg, jako příklad ukážu následující ukázku, která by se zobrazila místo původně zobrazovaného obrázku, který byl načítán z vašich stránek: