Jump to content
Geekforum.cz
Sign in to follow this  
odysey

Jak zabezpečit web pomocí .htaccess

Recommended Posts

htaccess.gif

 

 

 

 

Co je to soubor .htaccess

 

Pár slov úvodem…

 

V dnešním článku si řekneme něco o .htaccess. Nejprve si řekneme jak takový soubor .htaccess vytvořit. Poté si ukážeme příklady nastavení a řekneme si jejich využití v zabezpečení. Všechno pěkně stručně a jasně.

 

 

 

 

 

Co je to .htaccess?

 

Soubor .htaccess je konfigurační soubor serveru. Nejčastěji se využívá pro vytvoření vlastní chybové stránky nebo pro zablokování výpisu složky. Jde s ním, ale nastavovat mnohem více věcí.

 

K čemu .htaccess slouží?

 

Soubor .htaccess slouží k mnoho nastavení našeho webu. Jedinou podmínkou je jeho podpora na straně serveru. Pomocí tohoto souboru můžeme například vytvářet vlastní chybové stránky, přesměrování, ochranu webu heslem, blokování přístupu na naše WWW podle IP adres nebo k nastavení výchozího souboru (index.html).

Jak vytvořit soubor .htaccess?

 

Nevíte jak vytvořit takový soubor .htaccess? Je to jednoduché. Soubor .htaccess je normální textový dokument. Vytvořte jej (například pomocí Poznámkové bloku) a uložte ho pod názvem „.htaccess“ (včetně tečky).

Postup uložení přes Poznámkový blok:

1) Otevřete si Poznámkový blok.

2) Klikněte na: Soubor – Uložit jako…

3) Do pole „Název souboru“ napište: „.htaccess“ (bez uvozovek).

4) Do pole „Uložit jako typ“ vyberte „Všechny soubory“.

 

 

 

ZÁKLADNÍ ZABEZPEČENÍ WEBU

Aby byla funkční základní HTTP autentizace pomocí serveru Apache, je nutné vytvořit nebo doplnit soubor .htaccess v příslušném adresáři webu následujícími řádky. Zabezpečení se váže na složku se souborem .htaccess a všechny podřazené.

AuthType Basic

AuthName "Nazev zabezpecene oblasti"

AuthUserFile /cesta/k/.htpasswd

Require valid-user

V konfiguraci je uvedena i cesta k souboru .htpasswd, ve kterém jsou uloženy jednotliví uživatelé a jejich hesla v zašifrovaném tvaru. Struktura souboru .htpasswd vypadá takto:

jakub:$1$w4wrRMWy$x.OSeE9x4b0v.P7lo7Tm21
michal:$1$SCh03o/S$.P0QqrgMwzlbetXCahr5C.

ZABEZPEČENÍ ADRESÁŘŮ

Jednotlivé adresáře zabezpečíte tak, že soubor .htaccess s výše uvedenou syntaxí umístíte do těchto jednotlivých adresářů na webu.

 

ZABEZPEČENÍ SOUBORŮ

Lze zabezpečit i jednotlivé soubory, přičemž nezáleží na typu souboru - je možné stejně tak zabezpečit webovou stránku jako obrázek. Cestu k souborům zadávejte relativně k umístění souboru .htaccess

<Files soubor.php>
 AuthType Basic
 AuthName "Nazev zabezpecene oblasti"
 AuthUserFile /cesta/k/.htpasswd
 Require valid-user
</Files>

 

VOLBA UŽIVATELŮ S OPRÁVNĚNÍM - UŽIVATELSKÉ SKUPINY

Do zabezpečeného webového prostoru (složky, souborů, ...) je možné vybrat konkrétní uživatele nebo skupiny uživatelů definované v souboru .htpasswd, kteří do něho mají přístup.

Direktiva REQUIRE v souboru .htaccess určí, kteří uživatelé budou mít povolený přístup. K dispozici jsou 3 možnosti: Require valid-user umožní přístup všem ze seznamu uživatelů v .htpasswd Require user umožní přístup vyjmenovaným uživatelům oddělených mezerou, definovaných v

.htpasswd

.htaccess		AuthType Basic
	AuthName "Nazev zabezpecene oblasti"
	AuthUserFile /cesta/k/.htpasswd
	Require user jakub ondrej monika lenka		
.htpasswd		jakub:$1$w4wrRMWy$x.OSeE9x4b0v.P7lo7Tm21
	michal:$1$SCh03o/S$.P0QqrgMwzlbetXCahr5C.
	ondrej:$1$G2oqtKym$pjngWn3AHkZmtZEYu2y.l.
	vera:$1$AnmtS8FX$KDBFecYeWlvY/MvTlylNM/
	anna:$1$O/T83HcR$xymJj0pXBrLmLkYbgjq42/
	monika:$1$Jo34IFqt$rVE.U8znzEJSC4cQVJdlC0
	lenka:$1$1Jqf/EyD$E0ywFr/JXdecDDs2JxD5e1

Require group umožní přístup skupinám uživatelů oddělených mezerou, skupiny jsou definovány v souboru .htgroup a uživatelé v .htpasswd

Je nutné vytvořit soubor .htgroup a načíst jej do konfigurace zabezpečení v souboru .htaccess - direktiva pro načtení souboru skupin uživatelů včetně způsobu zápisu souboru .htgroup je patrná z následujícího příkladu:

	  
.htaccess		AuthType Basic
	AuthName "Nazev zabezpecene oblasti"
	AuthUserFile /cesta/k/.htpasswd
	AuthGroupFile /cesta/k/.htgroup
	Require group admin		
.htpassw		jakub:$1$w4wrRMWy$x.OSeE9x4b0v.P7lo7Tm21
	michal:$1$SCh03o/S$.P0QqrgMwzlbetXCahr5C.
	ondrej:$1$G2oqtKym$pjngWn3AHkZmtZEYu2y.l.
	vera:$1$AnmtS8FX$KDBFecYeWlvY/MvTlylNM/
	anna:$1$O/T83HcR$xymJj0pXBrLmLkYbgjq42/
	monika:$1$Jo34IFqt$rVE.U8znzEJSC4cQVJdlC0
	lenka:$1$1Jqf/EyD$E0ywFr/JXdecDDs2JxD5e1

.htgroup		admin: "michal" "lenka"
	hoste: "jakub" "ondrej" "vera" "anna" "monika"

 

NEJČASTĚJŠÍ CHYBY - CESTA K .HTPASSWD

Nejčastějším důvodem chyby a nefunkčnosti zabezpečení je špatná cesta k souboru .htpasswd nebo .htgroup. V tomto případě dochází k předání stránky s kódem 500: Internal Server Error.

Jste-li správcem serveru, lze prohlídkou logů jednoduše zjistit, v jakém umístění server soubory hledá a podle toho konfiguraci změnit. V případě, že tuto možnost nemáte, lze správnou cestu k souborům zjistit následujícím způsobem.

 

Cesta k souboru .htpasswd / .htgroup se určuje absolutně od kořenového adresáře webového serveru. V případě, že je váš web hostován na kolektivním webovém serveru, pak kořenovým adresářen není kořenový adresář vaší webové adresy a cestu k němu je třeba zjistit. Nejjednodušší cestou je vytvořit jednoduchou stránku .php, kam vložíte sekvenci PHP skriptu a kterou uložíte do kořenového adresáře webu (tam kde je stránka index):

<?php echo pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_DIRNAME); ?>

 

Po otevření stránky ve webovém prohlížeči získáte správnou adresu ke kořenému adresáři vašeho webu a za tuto již umístíte cestu k souboru .htpasswd na vašem webu. Jeli tedy soubor umístěn přímo v kořenovém adresáři webu, stačí dopsat "/.htpasswd".

Nezapomeňte na lomítko na začátku adresy.

Obsahuje-li cesta k souboru název složky, který obsahuje mezeru, je nutné celou cestu uzavřít do uvozovek!

 

 

OCHRANA SOUBORŮ .HT***

Pro udržení odpovídajícího zabezpečení, je nutné zamezení přístupu ke konfiguračním souborům .htaccess, .htgroup a hlavně .htpasswd. Tato konfigurace je v naprosté většině případů provedena již v samotné konfiguraci serveru. Pro doplnění problematiky je zde ale taktéž uvedena.

Konfigurační sekvence se vkládá do souboru .htaccess v kořenovém adresáři webu:

 

<FilesMatch "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</FilesMatch>

 

Správnost nastavení jednoduše vyzkoušíte vyvoláním adresy na tyto soubory z webového prohlížeče.STAŽENÍ KONFIGURAČNÍCH SOUBORŮ

Především proto, že vytvořit konfigurační soubory pod Windows není až tak jednoduché - díky jménu začínajícímu tečkou.

 

POVOLENÍ .HTACCESS NA SERVERU APACHE

Pokud používáte vlastní Apache server, pak bude s největší pravděpodobností potřeba povolit konfigurační soubor .htaccess.

Otevřete konfigurační soubor serveru .../apache/conf/httpd.conf, kde nalezněte a přepište, odkomentujte či dopište tyto direktivy:

Důležitá je direktiva AllowOverride, jako její hodnotu buďto zvolte ALL nebo AUTHCONFIG - tato umožní prostřednictvím souboru .htaccess konfigurovat pouze otázku zabezpečení.

 

#Konfigurace webového adresáře

 

<Directory "cesta/k/htdocs">
 #Direktiva dovolující změny v konfiguraci serveru
 # - hodnota: ALL - dovolit vše
 # - hodnota: AuthConfig - dovolit prostředky k zabezpečení
 AllowOverride All
</Directory>

 

#Název použitý pro konf. soubor

AccessFileName .htaccess

 

#Ochrana konf.souborů

<FilesMatch "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</FilesMatch>

 

cesta/k/htdocs je cesta k adresáři, kde se nacházejí weby, a je shodná s cestou uvedenou v direktivěDocumentRoot "cesta/k/htdocs"komentáře začínají znakem #

 

To je odemě vše..snad Vám to pomůže.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...