odysey Posted October 1, 2012 Report Share Posted October 1, 2012 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. Generátor souboru .htpasswd 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. Treatryutemia 1 Quote Link to comment Share on other sites More sharing options...
Wladass Posted October 1, 2012 Report Share Posted October 1, 2012 Pěkné shrnutí, plánuješ ještě další témata ohledně htaccessu nebo mám něco přidat já ? Quote Link to comment Share on other sites More sharing options...
odysey Posted October 1, 2012 Author Report Share Posted October 1, 2012 Pěkné shrnutí, plánuješ ještě další témata ohledně htaccessu nebo mám něco přidat já ? Klidně přidej :-) Info z druhé ruky, určitě nebude na škodu Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.