Zabezpieczenie witryny hasłem na home.pl
Dodatkowa autoryzacja witryny ogranicza dostęp do niej do osób tylko uprawnionych do logowania.Takie sytuacje zdarzają się np. kiedy serwis www jest w wersji testowej i użytkownicy z zewnątrz nie powinni go oglądać w takim stanie.Inne zastosowanie do ograniczenie dostępu do prywatnych danych, np. zdjęć, filmów, dokumentów.
Uwierzytelnienie jest przeprowadzane tylko jeden raz i jest ważne na czas trwania sesji.Podczas próby otwarcia strony zobaczymy poniższy komunikat.

Rys. 1. Autoryzacja użytkownika za pomocą pliku htaccess.
W przypadku niepodania danych logowania bądź też podania nieprawidłowych danych, na stronie pojawi się komunikat:
401 Autorization Required
This server could not verify that you are autorized to access the document you requested.
Wykorzystamy w tym celu plik .htaccess.Umieszczamy go w głównym katalogu serwera (zabezpieczamy cały serwis) lub w konkretnym katalogu.Wtedy zabezpieczamy dostęp do tego właśnie katalogu.Wypełniamy go następującą treścią:
AuthName "Autoryzacja"
AuthType Basic
AuthUserFile .htpasswd
Require valid-user
AuthName jest etykietą, która pojawi się w oknie żądającym hasła.Widać to na powyższym rysunku.
AuthType oznacza typ autoryzacji.Możliwe wartości to Basic i Digest, tylko te metody są aktualnie implementowane w serwerze Apache.
AuthUserFile wskazuje plik z wpisanymi loginami i zaszyfrowanymi hasłami, które mają dostęp do zasobu (witryny).Jest to plik tekstowy, każdy wpis umieszcza się w oddzielnej linii.W naszym przypadku wskazuje na plik .htpasswd.Plik .htpasswd jest plikiem ukrytym, nie powinien być on dostępny z poziomu przeglądarki.Na kontach shellowych plik .htpasswd umieszcza się poza katalogiem public_html.
Plik ten ma następującą budowę:
user1:hashasła1
user2: hashhasła2
gdzie:
hash hasła to zaszyfrowane hasło funkcją crypt().Funkcja crypt bazuje na algorytmie DES i jest jednokierunkową funkcją służącą do sporządzania hashy haseł.
Require valid-user oznacza, że wprowadzona nazwa użytkownika i hasło muszą być takie, jak zdefiniowane w pliku AuthUserFile.
Jak tworzyć plik .htpasswd
Dla przykładu, stworzymy dwoje użytkowników: maja i jacek, którzy będą mieć dostęp do witryny.Hasło użytkownika maja ustalimy na stokrotka, hasło użytkownika jacek ustalimy na supermen.
maja:9FiDfZtm8gafo
jacek:.9QnxRw9MFlso
Skąd się wziął ciąg znaków po nazwie użytkowników oraz dwukropku? To zaszyfrowane hasło funkcją crypt().W celu jego wygenerowania możemy skorzystać z gotowych generatorów htpasswd (link).
Po zalogowaniu się na serwer home powinniśmy zobaczyć pliki htaccess i htpasswd (W Total Commanderze powinniśmy włączyć Sieć->Pokaż ukryte pliki), zaznaczone na poniższej liście.
/
|- index.php
|- logo.png
|- search.php
|- module.php
|- .htaccess
|- .htpasswd
|- admin[Dir]
|- templates[Dir]
Więcej
Serwer Apache domyślnie jest skompilowany z modułem mod_auth.Moduł ten pozwala na uwierzytelnianie użytkowników metodą Basic.Dzięki temu dostęp do witryny jest ograniczony do ściśle wymienionych użytkowników lub grup użytkowników.Typ uwierzytelniania Digest jest obsługiwany przez moduł mod_auth_digest.Więcej o możliwościach modułu mod_auth można przeczytac w manualu serwera Apache (link).