668 145 480 info@jacekjagusiak.pl

W świecie internetu nie wszystko musi być publiczne – czasem zależy nam na tym, by pewne elementy naszej strony czy serwera były dostępne tylko dla wybranych osób, najlepiej po podaniu hasła. Może to być panel administracyjny, folder z dokumentacją projektu, prywatne dane lub pliki testowe. W takich przypadkach najlepszym rozwiązaniem (szczególnie na serwerach opartych o Apache) jest zabezpieczenie folderu hasłem przy pomocy pliku .htaccess i .htpasswd.

To prosta, ale potężna metoda, która nie wymaga PHP ani baz danych, a działa na poziomie serwera – czyli jeszcze zanim w ogóle załaduje się jakikolwiek kod strony. Zobacz, jak to działa krok po kroku.

Co będzie Ci potrzebne?

  • Dostęp do serwera Apache (większość hostingów go obsługuje),
  • Możliwość edycji lub utworzenia pliku .htaccess w folderze, który chcesz zabezpieczyć,
  • Plik .htpasswd, czyli zbiór użytkowników i ich zahashowanych haseł,
  • Podstawowa znajomość FTP lub menedżera plików w panelu hostingowym.

Krok 1: Zdecyduj, który folder chcesz zabezpieczyć

W pierwszej kolejności musisz określić, który katalog chcesz objąć ochroną. Może to być np.:

  • /admin – jeśli tworzysz panel kontrolny strony,
  • /backup – jeśli masz tam archiwalne dane,
  • /testy – jeśli to strefa robocza dla developera.
Sprawdź także:  Jak dodać wielu autorów do wpisu i stron na Wordpressie?

Wejdź do tego folderu przez FTP lub menedżer plików i utwórz w nim plik .htaccess, jeśli jeszcze go nie ma.

Krok 2: Utwórz plik .htaccess z regułami ochrony

W pliku .htaccess wklej poniższy kod:

AuthType Basic
AuthName "Strefa chroniona"
AuthUserFile /pełna/ścieżka/do/.htpasswd
Require valid-user

Co oznacza każda linia?

  • AuthType Basic – wskazuje, że używamy prostego uwierzytelniania HTTP.
  • AuthName – tekst wyświetlany użytkownikowi w oknie logowania.
  • AuthUserFile – ścieżka do pliku .htpasswd, w którym znajdują się dane logowania.
  • Require valid-user – dostęp mają tylko użytkownicy z listy.

Uwaga: ścieżka bezwzględna, nie względna!

Tutaj najwięcej osób popełnia błąd. W AuthUserFile musisz wpisać pełną ścieżkę systemową do pliku .htpasswd, np.:

/home/nazwa_uzytkownika/public_html/sekretna_strefa/.htpasswd

Nie możesz użyć skrótu ./ albo ~/.

Jak sprawdzić pełną ścieżkę? Czasami znajdziesz ją w panelu hostingowym lub możesz stworzyć plik PHP z komendą echo __FILE__; i odczytać z niego katalog.

Krok 3: Utwórz plik .htpasswd z hasłem

Do stworzenia tego pliku najlepiej użyć generatora haseł .htpasswd dostępnego online (np. htpasswdgenerator.net – tylko do celów lokalnych!).

Przykładowy wpis w .htpasswd wygląda tak:

admin:$apr1$83jdja$wHwXdoIU5xP0YmM3A1H/v0

Pierwsza część to nazwa użytkownika, a druga – zahashowane hasło (nie trzymaj go w postaci zwykłego tekstu!).

Zapisz ten plik jako .htpasswd poza katalogiem publicznym, np. w katalogu nadrzędnym względem public_html, aby nie był dostępny przez przeglądarkę.

Krok 4: Sprawdź, czy działa

Teraz wejdź w przeglądarce na adres folderu, który chronisz – np. twojastrona.pl/sekretna_strefa. Powinno pojawić się klasyczne okienko logowania z pytaniem o użytkownika i hasło. Po poprawnym zalogowaniu uzyskasz dostęp. W przeciwnym razie – błąd 401.

Sprawdź także:  WordPress cofnął Twoje zmiany PHP? Oto dlaczego i jak to naprawić

Co warto wiedzieć?

  • Możesz dodać wielu użytkowników – każdy w osobnej linii w .htpasswd.
  • Możesz przypisywać uprawnienia do konkretnych nazw użytkowników (zamiast valid-user, wpisz np. user admin).
  • Ta metoda działa tylko na serwerach Apache i tam, gdzie jest aktywny mod_auth.
  • Nie działa na darmowych hostingach bez dostępu do .htaccess.

Ciekawostka

Hasła w .htpasswd możesz generować również lokalnie przez terminal na systemie Linux lub Mac za pomocą komendy:

htpasswd -c .htpasswd nazwa_uzytkownika

Na Windowsie – jeśli masz dostęp do Apache w XAMPP lub WAMP – też możesz to zrobić w konsoli.

Podsumowanie

Zabezpieczenie folderu hasłem za pomocą .htaccess to jedna z najprostszych i najskuteczniejszych metod ochrony poufnych danych na serwerze. Działa niezależnie od języka programowania strony, jest szybka w konfiguracji i nie wymaga żadnej logiki aplikacji – całość rozgrywa się po stronie serwera Apache.

W kilku krokach możesz stworzyć prywatną strefę dostępną tylko po podaniu loginu i hasła, zabezpieczyć pliki testowe lub chronić panel administracyjny przed niepowołanymi gośćmi.

Spis treści