Chráněný přístup na webovou presentaci - HTTP Access
V rámci naich slueb můete vyuít zajitění chráněného přístupu na určitou část vaí internetové presentace, tedy aby se anonymní návtěvník www stránek nemohl dostat do určitého adresáře vaeho diskového prostoru protokolem HTTP.
Jedná se o odebrání práv anonymního uivatele v rámci vaí domény na určité adresáře či soubory. Je také moné přiřadit dalí uivatelská jména pro chráněný přístup. Zobrazit obsah stránek nebo dokumentů v této sloce pak bude moné a po zadání přihlaovacích údajů ve zvlátním dialogovém okně.
Ochrana heslem je jedna z nejuitečnějích funkcí souboru .htaccess. Toto je nejspolehlivějí ochrana ze vech. Vytvoření zaheslované sloky vyaduje vytvoření 2 souborů .htaccess a .htpasswd. Jsou to skryté soubory, které nemají jméno, ale jenom extenzi (příponu). Oba soubory lze editovat textovým editorem.
.htaccess
Nejdříve přidáme do souboru .htaccess poadované příkazy a uloíme do sloky, kterou chceme zaheslovat:
AuthUserFile /cesta/.htpasswd
AuthGroupFile /dev/null
AuthName "Název sekce"
AuthType Basic
require valid-user
Zde "Název sekce" je libovolný titulek sloky, kterou si přejeme zaheslovat, například "Přátelé".
Pak /cesta je absolutní cesta k souboru .htpasswd. Soubor .htpasswd můete umístit do libovolné sloky a ani se nemusí jmenovat .htpasswd. Z bezpečnostních důvodů se ale doporučuje .htpasswd umístit nad Vai hlavní sloku. To proto, aby soubor nelo nalézt výpisem sloek Vaí domény. Jestli máte placený www protor, na serveru by pro Vás ji měla být zvlátní sloka k uloení citlivých údajů.
Pokud neznáte cestu na svoji doménu, můete spustit PHP funkci phpinfo(), která vypíe na monitor nastavení serveru. Vytvořte si stránku s příponou .php (např. phpinfo.php) a do ní vlote tento kód:
<?php phpinfo () ?>
Stránku ulote na server a spus»te v prohlíeči. Měly by se zobrazit tabulky s nastavením serveru. V tabulce "PHP variables" by měla být poloka _SERVER["DOCUMENT_ROOT"] nebo podobná. Toto je absolutní cesta k hlavní sloce vaí domény.
.htpasswd
Soubor .htpasswd obsahuje uivatelská jména a hesla, která budou mít přístup k chráněné sloce.
Do souboru .htpasswd se uivatelská jména a hesla přidají v tomto formátu:
uivatel1:heslo1
uivatel2:heslo2
uivatel3:heslo3
Hesla si musíte sami zaifrovat PHP funkcí crypt(). Zde je hotový skript, který tohle provede. Vytvořte si stránku s příponou .php (např. sifrovak.php) a do ní vlote tento kód:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
<title>ifrovák</title>
</head>
<body>
<h1>ifrovák</h1>
<form action="<?php echo $PHP_SELF ?>" method="post">
Heslo k zaifrování:
<br /><input type=text name=heslo />
<input type="submit" name="submit" value=" jdi " />
</form>
</body>
</html>
<?php
$submit = $_REQUEST['submit'];
if (isset ($submit)) {
$heslo = $_REQUEST['heslo'];
$zasifrovane = crypt ($heslo);
if (crypt ($heslo, $zasifrovane) == $zasifrovane)
echo "<br />Heslo: $heslo = <span style='background:yellow;color:black;'>$zasifrovane</span>";
else
echo "<br />Dolo k chybě v ifrování.";
}
?>
Zaifrování musíte provést na svém internetovém serveru, na kterém budete mít zaheslovanou sloku. Nemá význam to dělat na nějakém jiném serveru, protoe různé servery ifrují různě. Stránku sifrovak.php ulote na server a spus»e v prohlíeči. Zaifrujte si jedno heslo po druhém a vdy zkopírujte klipem do souboru .htaccess.
uivatel1:zasifrovane_heslo1
uivatel2:zasifrovane_heslo2
uivatel3:zasifrovane_heslo3
Dalí uivatele lze přidávat jako dalí řádky souboru .htpasswd.
Kdy se potom někdo pokusí o přístup k zaheslované sloce, prohlíeč zobrazí výzvu k vloení uivatelského jména a hesla. Existují té serverové moduly, které zobrazují tento dialog jako součást stránky. Lze také odeslat uivatelské jméno a heslo (nezaifrované) v URL:
http://uzivatel:heslo@www.server.cz/slozka/