Często chcemy jakąś część strony zabezpieczyć dodatkowym hasłem, np. w przypadku portali część dostępną dla administratora.

Zastosowań jest wiele, jedno z nich to obrona aplikacji phpMyAdmin przed próbami brutal force. Tworzymy dodatkowy plik dostępny dla grupy użytkowników, która będzie miała dostęp do phpmyadmin, np.
/usr/local/apache2/hasla. Nadajemy mu prawa zapisu dla grupy chmod g+w /usr/local/apache2/hasla.

Teraz każdy użytkownik, który chce mieć dostęp do phpMyAdmin loguje się do powłoki Linux i poleceniem

1
htpasswd -c /home/user/public_html/katalog/.htpasswd uzytkownik

nadaje sobie hasło dostępu. UWAGA! pierwsze hasło nadajemy z parametrem -c, kolejnych dodajemy bez tego parametru

W pliku /etc/apache2/conf.d/phpmyadmin.conf w sekcji dodajemy

1
2
3
4
5
        AuthType Basic
        AuthName "Podaj haslo dodatkowe phpmyadmin"
        AuthBasicProvider file
        AuthUserFile /usr/local/apache2/hasla
        Require valid-user

Podobnie w przypadku, gdy chcemy zabezpieczyć podkatalog w public_html, wówczas

  1. tworzymy nowy plik w katalogu, który chcemy zabezpieczyć np. ~/public_html/administracja/.htpasswd
  2. tworzymy adminów z dostępem do katalogu poleceniem htpasswd (w przypadku pierwszego użytkownika dodajemy od -c: htpasswd -c ….) np. htpasswd ~/public_html/administracja/.htpasswd uzytkownik
  3. na stronie tworzymy plik .htaccess zawierający sekcję podobną do tej z phpmyadmin.conf zmieniając katalog:
    1
    2
    3
    4
    5
            AuthType Basic
            AuthName "Podaj haslo"
            AuthBasicProvider file
            AuthUserFile /home/user/public_html/administracja/.htpasswd
            Require valid-user

    Jeśli nie mamy dostępu do powłoki Shell (SSH) plik z hasłami musimy wygenerować w Windowsie (są do tego programy) i wgrać na ftp do katalogu publicznego koniecznie pod nazwą: .htpasswd. Do pliku nie powinno być dostępu: http://host/~user/.htpasswd powinien być Forbidden. Jako AuthUserFile podajemy pełną ścieżkę (zazwyczaj wygląda ona tak: /home/user/public_html/katalog_glowny_www/podkatalog/.htpasswd ).

    UWAGA! Aby serwer obsługiwał pliki .htaccess musimy dla katalogów, w których stosujemy hasła ustawić w konfiguracji Apache (/etc/apache2/sites-enabled/… ) wewnątrz dodać opcję:

    1
    AllowOverride All

    Generatory online

    .htpasswd generator
    Dla serwera 201 zabezpieczenie konta plik .htaccess:

    1
    2
    3
    4
    5
    AuthType Basic
    AuthName "Podaj haslo"
    AuthBasicProvider file
    AuthUserFile /home/user/public_html/.htpasswd
    Require valid-user