O ile jednak plik .htaccess utworzymy w zwykłym notatniku, to już z plikiem .htpasswd będzie więcej zachodu, gdyż tego pliku nie jesteśmy w stanie przygotować "odręcznie". Wynika to z faktu, iż hasła przechowywane w tym pliku zapisywane są w formie szyfrowanej, zatem skorzystać będziemy musieli z jakiegoś narzędzia generującego nasze hasła w formie zaszyfrowanej.
.htpasswd
Pierwszym i podstawowym narzędziem służacym do generowania pliku z hasłami jest udostępnione w pakiecie z serwerem Apache konsolowe narzędzie o nazwie:[code]htpasswd.exe[/code]
Innym sposobem na utworzenie pliku z hasłami jest skorzystanie z któregoś z dostępnych on-line generatorów.
Oto ich krótka lista:
http://www.htaccesstools.com/htpasswd-generator/
http://www.askapache.com/online-tools/htpasswd-generator/
http://aspirine.org/htpasswd_en.html
http://www.htpasswdgenerator.net/
Jak wygląda taki plik z hasłami?
Jest to zwykły plik tekstowy o postaci:
[code]login1:hasło1
login2:hasło2
login3:hasło3
...itd
[/code]
Przykład pliku .htpasswd:
[code]
marek:$apr1$mFL7znbn$cQMJYoAf5gSXw0d2GAGNx.
anna:$apr1$ggN.pSSf$Dld5WOZkHlPP03g534R0X/
janusz:$apr1$GCpfbZ26$omnuEq040nxzQlYkYum.j.
...itd
[/code]
Użytkowników może być dowolna ilość, należy jednak pamiętać, aby każdy z nich określony był w oddzielnej linijce, na zasadzie:
[code]nazwa_użytkownika1:hasło_użytkownika1
nazwa_użytkownika2:hasło_użytkownika2
nazwa_użytkownika3:hasło_użytkownika3[/code]
Skorzystamy teraz z wbudowanego w Apache narzędzia, aby wygenerować nasz plik z hasłami.
Na początek mała uwaga - plik z hasłami przechowujemy w folderze niedostępnym z zewnątrz.
Stwórzmy sobie jakiś wydzielony folder, np.:
[code]C:\top_secret[/code]
w Windowsie
lub
[code]/home/użytkownik/top_secret[/code]
na Linuxie
i tam zapisujmy hasła.
Ważne jest jedynie, aby folder nie był dostępny z poziomu WWW.
Składnia poleceń narzędzia htpasswd wygląda następująco:
[code]htpasswd.exe -parametr "/ŚCIEŻKA/DO/PLIKU/Z/HASŁAMI" nazwa_użytkownika[/code]
Utwórzmy więc np. użytkownika o nazwie janusz i dowolnym haśle.
Narzędzie pracuje w terminalu, wejdźmy więc do terminalu/konsoli i wpiszmy:
[code]htpasswd.exe -c "C:\top_secret\.htpasswd" janusz[/code]
Wciśnijmy ENTER, podajmy dwukrotnie hasło i to wszystko - plik został wygenerowany.
O ile wszystko wykonaliśmy poprawnie, plik C:\top_secret\.htpasswd powinień wyglądać jakoś tak:
[code]janusz:$apr1$R0L9yuuR$5yFjvKY5zzjcimetH3l.L.[/code]
Kolejnego użytkownika do tego pliku dodamy tak samo, ale pominiemy teraz parametr -c (skrót od create). Dodajmy kolejnego użytkownika np. o nazwie anna i dowolnym haśle:
[code]htpasswd.exe "C:\top_secret\.htpasswd" anna[/code]
Nasz plik ma już dwóch użytkowników:
[code]
janusz:$apr1$zEw590ap$o9OvCKEbofz5v2SFE9SQJ0
anna:$apr1$AQA3qYnC$z32ZOrJNJWExBL6Y0BKIl0
[/code]
.htaccess
Teraz czas na zabawę z plikiem .htaccess.Załóżmy, że na naszym serwerze posiadamy katalog:
[code]C:\WWW\top_secret_area[/code]
który chcemy zabezpieczyć hasłem.
Utwórzmy w nim plik .htaccess i wpiszmy do niego to co poniższe:
[code]
AuthType basic
AuthName "Top Secret Area"
AuthUserFile C:/top_secret/.htpasswd
Require valid-user
[/code]
Zapiszmy plik.
Teraz po koleji co tak naprawdę zrobiliśmy:
- AuthType - określa sposób autoryzacji, może to być basic, lub digest, my wykorzystamy basic
- AuthName - to nazwa wyświetlana po wejściu do chronionego zasobu, może być dowolna
- AuthUserFile - podajemy pełną ścieżkę do pliku z hasłami
- Require - wymieniamy po spacjach nazwy użytkowników, lub grup które mogą się logować, albo podajemy valid-user, które oznacza, że logować może się każdy użytkownik opisany w pliku z hasłami. W przypadku podawania użytkownika:
Require user nazwa_użytkownika1 nazwa_użytkownika2 itd...
W przypadku grup:
Require group nazwa_grupy1 nazwa_grupy2 itd.....
Jeśli wszystko wykonaliśmy poprawnie, to po wejściu do naszego katalogu:
[code]http://localhost/top_secret_area[/code]
wyświetli nam się prośba o podanie loginu i hasła w celu uzyskania dostępu do zawartości.
Od tej chwili jedynie określeni przez nas użytkownicy mają dostęp do tego folderu.
Możemy też określać nazwy grup użytkowników, którzy mogą się logować:
W przypadku takim, tworzymy plik z grupami np.:
[code]C:\top_secret\groups[/code]
I wpisujemy w nim np.:
[code]tajna_grupa: janusz anna[/code]
Grup możemy dodać kilka, każdą w oddzielnej linijce, np.:
[code]tajna_grupa: janusz anna
inna_grupa: adam marek[/code]
Gdy mamy już plik z definicjami grup, dołączamy go do .htaccess i określamy kto może się logować tym razem podając grupę, a nie pojedyńczych użytkowników:
[code]
AuthType basic
AuthName "Top Secret Area"
AuthUserFile C:/top_secret/.htpasswd
AuthGroupFile C:/top_secret/groups
Require group tajna_grupa
[/code]
Uwaga: aby móc skorzystać z modułu autoryzacji w pliku .htaccess nasz katalog musi mieć ustawioną w konfiguracji httpd.conf dyrektywę AllowOverride na wartość all lub conajmniej na AuthConfig.
Ten komentarz został usunięty przez autora.
OdpowiedzUsuńTen komentarz został usunięty przez autora.
UsuńDzięki :)
OdpowiedzUsuń