Článek z předchozího týdne ukázal metodu, jak vyžadovat autentizaci jediného PHP souboru. Pokud vás zajímá jak HTTP Basic Auth funguje, přečtěte si také předchozí článek, vysvětluje i něco z teorie.
Pokud chcete takto omezit přístup na celý adresář, včetně souborů, je vhodné tuto techniku udělat pomocí souborů .htaccess a .htpasswd. Ověření bude požadováno i při přístupu k běžným souborům jako PDF apod.
.htaccess a .htpasswd
Do adresáře, do kterého chceme omezit přístup, vložíme soubor .htaccess s následujícím obsahem. Pokud soubor již máte, stačí tento kód vložit na začátek.
AuthType Basic AuthName "Area51" AuthUserFile /absolute/path/to/.htpasswd Require valid-user
Soubor si můžete také nechat vygenerovat na stránce htaccesstools.com. Dejte si pozor na absolutní cestu k souboru .htpasswd! Pokud bude relativní, server vám s největší pravděpodobností vrátí chybu 500. Níže najdete jednoduchý PHP skript pro zjištění absolutní cesty.
.htpasswd
Soubor .htpasswd obsahuje na každém řádku jméno a heslo, jakým je možné se přihlásit. Protože heslo je zahashované, doporučuji opět využít generátor na htaccesstools.com. Ukázka souboru může vypadat například takto:
# login: root, pass: root root:$apr1$psi1B9A5$9x/383KfLwAlj1ak/omg4/ # login: admin, pass: admin admin:$apr1$r250U/Lz$owvgPLKtqauz5YR6sG/kR/
Tento soubor nemusí být umístěn ve stejném adresáři jako .htaccess, protože vždy musí být uvedena absolutní adresa. Tímto způsobem můžete zaheslovat více adresářů jedinou sadou jmen a hesel.
Po uložení pří přístupu na uživatele vyskočí stejný dialog jako v případě využití s PHP. Prohlížeč si opět údaje uloží a odesílá je s každým přístupem. Uživatel tedy nebude obtěžován při každém requestu.
Zjištění absolutní adresy
Na běžném hostingu se po připojení na FTP server dostanete pouze do složky, a tak adresu kterou zjistíte je vždy relativní. Zjištění absolutní adresy lze velmi jednoduše zjistit PHP skriptem, který vložíte do adresáře, kde chcete mít uložen soubor .htpasswd
echo dirname(__FILE__)."/.htpasswd";
Úvodní fotka převzata z Freepik
K tomuto článku již není možné přidávat další komentáře