Portál technické podpory

Pokud zde nenajdete to, co jste hledali, neváhejte nás kontaktovat.
Potřebné informace pro vás rádi doplníme.

Chráněný přístup na webovou prezentaci – HTTP Access

V rámci našich služeb můžete využít zajištění chráněného přístupu na určitou část vaší internetové presentace, tedy aby se anonymní návštěvník www stránek nemohl dostat do určitého adresáře vašeho diskového prostoru protokolem HTTP.

Jedná se o odebrání práv anonymního uživatele v rámci vaší domény na určité adresáře či soubory. Je také možné přiřadit další uživatelská jména pro chráněný přístup. Zobrazit obsah stránek nebo dokumentů v této složce pak bude možné až po zadání přihlašovacích údajů ve zvláštním dialogovém okně.

Ochrana heslem je jedna z nejužitečnějších funkcí souboru .htaccess. Toto je nejspolehlivější ochrana ze všech. Vytvoření zaheslované složky vyžaduje 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 požadované příkazy a uložíme do složky, 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 složky, 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é složky a ani se nemusí jmenovat .htpasswd. Z bezpečnostních důvodů se ale doporučuje .htpasswd umístit nad Vaši hlavní složku. To proto, aby soubor nešlo nalézt výpisem složek Vaší domény. Jestli máte placený www protor, na serveru by pro Vás již měla být zvláštní složka k uložení 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í vložte tento kód:

<?php phpinfo () ?>

Stránku uložte 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 položka _SERVER["DOCUMENT_ROOT"] nebo podobná. Toto je absolutní cesta k hlavní složce vaší domény.

.htpasswd

Soubor .htpasswd obsahuje uživatelská jména a hesla, která budou mít přístup k chráněné složce.

Do souboru .htpasswd se uživatelská jména a hesla přidají v tomto formátu:

uživatel1:heslo1
uživatel2:heslo2
uživatel3:heslo3

Pro další funkčnost je nutné si hesla zašifrovat pomocí 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í vložte 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 zašifrová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 />Došlo k chybě v šifrování.";
}
?>

Zašifrování musíte provést na svém internetovém serveru, na kterém budete mít zaheslovanou složku. Nemá význam to dělat na nějakém jiném serveru, protože různé servery šifrují různě. Stránku sifrovak.php uložte na server a spusťe v prohlížeči. Zašifrujte si jedno heslo po druhém a vždy zkopírujte klipem do souboru .htpasswd.

uživatel1:zasifrovane_heslo1
uživatel2:zasifrovane_heslo2
uživatel3:zasifrovane_heslo3

Další uživatele lze přidávat jako další řádky souboru .htpasswd.

Když se potom někdo pokusí o přístup k zaheslované složce, prohlížeč zobrazí výzvu k vložení uživatelského jména a hesla. Existují též serverové moduly, které zobrazují tento dialog jako součást stránky. Lze také odeslat uživatelské jméno a heslo (nezašifrované) v URL:

http://uzivatel:heslo@www.server.cz/slozka/