Chránený prístup na webovú prezentáciu - HTTP Access
V rámci našich služieb môžete využiť zaistenie chráneného prístupu na určitú časť vašej internetovej prezentácie, aby sa anonymný návštevník www stránok nemohol dostať do určitého adresára vášho diskového priestoru protokolom HTTP.
Jedná sa o odoberanie práv anonymného užívateľa v rámci vašej domény na určité adresáre alebo súbory. Je tiež možné priradiť ďalšie užívateľské mená pre chránený prístup. Zobraziť obsah stránok alebo dokumentov v tejto zložke potom bude možné až po zadaní prihlasovacích údajov v zvláštnom dialógovom okne.
Ochrana heslom je jedna z najužitočnejších funkcií súboru .htaccess. Toto je najspoľahlivejšia ochrana zo všetkých. Vytvorenie zaheslovanej zložky vyžaduje vytvorenie 2 súborov .htaccess a .htpasswd. Sú to skryté súbory, ktoré nemajú meno, ale iba extenzie (príponu). Oba súbory je možné editovať textovým editorom.
.htaccess
Najskôr pridáme do súboru .htaccess požadované príkazy a uložíme do zložky, ktorú chceme zaheslovať:
AuthUserFile /cesta/.htpasswd
AuthGroupFile /dev/null
AuthName "Názov sekcie"
AuthType Basic
require valid-user
Tu "Názov sekcie" je ľubovolný titulok zložky, ktorú si prajeme zaheslovať, napríklad "Priatelia".
Potom /cesta je absolútna cesta k súboru .htpasswd. Súbor .htpasswd môžete umiestniť do ľubovolnej zložky a ani sa nemusí volať .htpasswd. Z bezpečnostných dôvodov sa ale doporučuje .htpasswd umiestniť nad Vašu hlavnú zložku. To preto, aby súbor nešlo nájsť výpisom zložiek Vašej domény. Ak máte platený www priestor, na servere by pre Vás už mala byť zvláštna zložka na uloženie citlivých údajov.
Ak nepoznáte cestu na svoju doménu, môžete spustiť PHP funkciu phpinfo(), ktorý vypíše na monitor nastavenie serveru. Vytvorte si stránku s príponou .php (napr. phpinfo.php) a do nej vložte tento kód:
<?php phpinfo () ?>
Stránku uložte na server a spustite v prehliadači. Mala by sa zobraziť tabuľka s nastavením serveru. V tabuľke "PHP variables" by mala byť položka _SERVER["DOCUMENT_ROOT"] alebo podobná. Toto je absolútna cesta k hlavnej zložke vašej domény.
.htpasswd
Súbor .htpasswd obsahuje užívateľské mená a heslá, ktoré budú mať prístup k chránenej zložke.
Do súboru .htpasswd sa užívateľské mená a heslá pridajú v tomto formáte:
uživatel1:heslo1
uživatel2:heslo2
uživatel3:heslo3
Heslá si musíte sami zašifrovať PHP funkciou crypt(). Tu je hotový skript, ktorý toto urobí. Vytvorte si stránku s príponou .php (napr. sifrovak.php) a do nej 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šifrovaniu:
<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, $zašifrované) == $zašifrované)
echo "<br />Heslo: $heslo = <span style='background:yellow;color:black;'>$zasifrovane</span>";
else
echo "<br />Došlo k chybe v šifrovaní.";
}
?>
Zašifrovanie musíte vykonať na svojom internetovom servere, na ktorom budete mať zaheslovanú zložku. Nemá význam to robiť na nejakom inom servere, pretože rôzne servery šifrujú rôzne. Stránku sifrovak.php uložte na server a spustite v prehliadači. Zašifrujte si jedno heslo po druhom a vždy skopírujte klipom do súboru .htpasswd.
uživatel1:zasifrovane_heslo1
uživatel2:zasifrovane_heslo2
uživatel3:zasifrovane_heslo3
Ďalší užívatelia sa môžu pridávať ako ďalšie riadky súboru .htpasswd.
Keď sa potom niekto pokúsi o prístup k zaheslovanej zložke, prehliadač zobrazí výzvu k vloženie užívateľského mena a hesla. Existujú tiež serverové moduly, ktoré zobrazujú tento dialóg ako súčasť stránky. je možné tiež odoslať užívateľské meno a heslo (nezašifrované) v URL:
http://uzivatel:heslo@www.server.cz/slozka/