Tutorial - Chroń katalog lub interfejs administracyjny Twojej strony internetowej za pomocą plików .htaccess i .htpasswd

Bazy wiedzy

Tutorial - Chroń katalog lub interfejs administracyjny Twojej strony internetowej za pomocą plików .htaccess i .htpasswd


Icons/System/eye-open Created with Sketch. 1544 wyśw. 23.05.2025 Web / Hosting WWW
Informacje o tłumaczeniu

Tłumaczenie zostało wygenerowane automatycznie przez system naszego partnera SYSTRAN. W niektórych przypadkach mogą wystąpić nieprecyzyjne sformułowania, na przykład w tłumaczeniu nazw przycisków lub szczegółów technicznych. W przypadku jakichkolwiek wątpliwości zalecamy zapoznanie się z angielską/francuską wersją przewodnika. Jeśli chcesz przyczynić się do ulepszenia tłumaczenia, kliknij przycisk “Zgłoś propozycję modyfikacji” na tej stronie.

Wprowadzenie

Tutorial wyjaśnia, jak wdrożyć uwierzytelnienie "użytkownik/hasło", aby uzyskać dostęp do całej lub części Twojej strony WWW za pomocą przeglądarki internetowej.

Używając dwóch plików konfiguracyjnych (HTTP) Apache do umieszczenia w przestrzeni FTP Twojego hostingu www:

OVHcloud oddaje do Twojej dyspozycji usługi, których konfiguracja, zarządzanie i odpowiedzialność spoczywają na Ciebie. W związku z tym należy zapewnić ich prawidłowe funkcjonowanie.

Oddajemy w Twojej ręce niniejszy przewodnik, którego celem jest pomoc w jak najlepszym wykonywaniu bieżących zadań. W przypadku trudności zalecamy skorzystanie z pomocy wyspecjalizowanego usługodawcy i/lub kontakt z producentem oprogramowania. Niestety firma OVHcloud nie będzie mogła udzielić wsparcia w tym zakresie. Więcej informacji znajduje się w sekcji "Sprawdź również" niniejszego przewodnika.

Przykłady, które zostaną następnie wyświetlone, znajdują się w plikach o nazwie ".htaccess" i ".htpasswd". Uwaga, reguły, które określiłeś w tych plikach, mają bezpośrednie konsekwencje dla Twojej strony WWW. Sprawdź systematycznie dodawanie reguł przed ich wdrożeniem na Twojej stronie WWW.

Dowiedz się, jak zabezpieczyć katalog lub dostęp do administratora Twojej strony WWW za pomocą uwierzytelnienia za pomocą plików ".htaccess" i ".htpasswd".

Wymagania początkowe

W praktyce

Rozwiązanie w zakresie bezpieczeństwa proponowane tutaj jest tylko jedną z możliwości technicznych.

Należy na przykład wiedzieć, że w przypadku korzystania z Content Management System (CMS) dostępne są inne rozwiązania bezpieczeństwa.

Jeśli korzystasz z CMS WordPress, OVHcloud udostępnia również tutorial, w jaki sposób używać pliku htaccess przy użyciu WordPress.

W przypadku pytań związanych z tworzeniem, użytkowaniem lub programowaniem Twojej strony WWW, pomoc OVHcloud nie będzie w stanie udzielić Ci wsparcia w tym zakresie.

W tym celu skontaktuj się z naszą społecznością użytkowników lub naszymi partnerami OVHcloud.

Opiszemy 4 główne etapy, które należy wykonać, aby chronić dostęp do katalogu lub części Twojej strony WWW:

  • Tworzenie plików "crypt.php", ".htaccess" i ".htpasswd";
  • Wygeneruj zaszyfrowane hasła za pomocą pliku "crypt.php";
  • Określenie użytkowników i haseł zaszyfrowanych za pomocą pliku ".htpasswd";
  • Konfiguracja reguł w pliku ".htaccess" i usunięcie pliku "crypt.php".

Kolejne etapy optymalizują bezpieczeństwo przechowywanych danych. W związku z tym oraz w przypadku kompatybilności stron WWW z Twoimi usługami rekomendujemy użycie najnowszej wersji PHP.

Aby zmienić wersję PHP swoich stron www na Twoim hostingu, zapoznaj się z naszym przewodnikiem "Hosting WWW : środowisko, wersja PHP, .ovhconfig".

Skrypty i informacje opisane poniżej w tym tutorialu działają jedynie w środowisku wykonawczym oraz w najnowszej wersji PHP.

W przeciwnym razie zalecamy zoptymalizowanie Twojej strony WWW, aby uczynić ją kompatybilną przed wdrożeniem tego, co nastąpi. Dzięki temu zmniejszy się ryzyko włamania się do Twoich danych z powodu luk w zabezpieczeniach.

Etap 1: tworzenie plików "crypt.php", ".htaccess" i ".htpasswd"

Zaloguj się do przestrzeni dyskowej FTP Twojego hostingu. Otwórz "katalog główny", do którego wskazuje Twoja domena.

Utwórz plik "crypt.php" w tym katalogu głównym.

Otwórz lub utwórz folder przeznaczony do ochrony Twojej strony WWW. W poniższym przykładzie będzie to folder "admin". Utwórz w tym katalogu plik ".htpasswd" oraz plik ".htaccess".

Aby poprawnie korzystać z plików ".htaccess" i ".htpasswd", musisz znać i przestrzegać następujących zasad:

  • tylko jeden plik ".htaccess" i tylko jeden plik ".htpasswd" w katalogu lub podkatalogu, aby uniknąć konfliktów między różnymi plikami ".htaccess" i różnymi ".htpasswd";
  • pliki ".htaccess" i ".htpasswd" są niewidoczne dla użytkowników odwiedzających Twoją stronę internetową;
  • reguły zadeklarowane w pliku ".htaccess" mają zastosowanie do całego katalogu, w którym zainstalowany jest plik ".htaccess", oraz do wszystkich podkatalogów tego katalogu;
  • pliki ".htpasswd" i ".htaccess" mogą być w różnych folderach. Tylko jeden plik ".htpasswd" może być używany dla kilku ".htaccess".

Etap 2: uzupełnij plik "crypt.php"

Przejdź do katalogu głównego, w którym utworzyłeś plik "crypt.php". Kliknij polecenie Edytuj i umieść następujące wiersze:

<?php
$string = password_hash("plain_text_password", PASSWORD_BCRYPT);

echo nl2br("$string");
 ?>

Zastąp wyłącznie hasłem plain_text_password w języku niekodowanym, które chcesz zaszyfrować.

Możesz dostosować skrypt do liczby haseł, które chcesz zaszyfrować.

  • Przykład, w którym skrypt PHP zaszyfruje 3 haseł w jednej operacji:
<?php
$string_1 = password_hash("plain_text_password1", PASSWORD_BCRYPT);
$string_2 = password_hash("plain_text_password2", PASSWORD_BCRYPT);
$string_3 = password_hash("plain_text_password3", PASSWORD_BCRYPT);

echo nl2br("$string_1 \n $string_2 \n $string_3");
 ?>

Zastąp wyłącznie plain_text_password1, plain_text_password2 i plain_text_password3 hasłami w języku niekodowanym"które chcesz zaszyfrować.

Oba powyższe skrypty wykorzystują w dniu dzisiejszym najbezpieczniejszą metodę szyfrowania za pomocą algorytmu bcrypt zalecanego przez Apache.

Więcej informacji na ten temat znajdziesz w oficjalnej dokumentacji Apache.

Jeśli dysponujesz hostingiem Pro lub Performance, zaloguj się do hostingu za pomocą SSH. Przejdź do "katalog główny", w którym znajduje się Twój skrypt "crypt.php".

W tym celu użyj następującej komendy SSH:

cd Name_of_your_root_folder

Zastąp Name_of_your_root_folder nazwą Twojego "katalogu głównego" i zapisz, gdzie znajduje się skrypt "crypt.php".

Jeśli na przykład Twój plik "crypt.php" znajduje się w podfolderze Twojego "katalogu głównego", użyj następującej komendy SSH:

cd Name_of_your_root_folder/sub_folder

Zastąp Name_of_your_root_folder nazwą "głównego katalogu" i sub_folder podfolderem, w którym znajduje się Twój skrypt "crypt.php".

Gdy tylko znajdziesz się na poziomie skryptu "crypt.php", wprowadź następującą komendę:

php crypt.php

Ze względów bezpieczeństwa zaleca się korzystanie z SSH. Jeśli jednak dysponujesz usługą Starter lub Perso, dla której SSH jest niedostępny, możesz również uruchomić plik "crypt.php" za pomocą przeglądarki internetowej.

W tym celu wprowadź następujący adres URL: https://domain.tld/crypt.php poprzez modyfikację domain.tld przez Twoją własną domenę. Znajduje się to bezpośrednio na pasku adresowym przeglądarki internetowej.

Pobierz zaszyfrowane hasła bez kopiowania le "<br />", jeśli wpiszesz komendę "php crypt.php" przez SSH:

encrypted_password1
encrypted_password2
encrypted_password3

Wartości encrypted_password1, encrypted_password2 i encrypted_password3 muszą na przykład wyglądać w formacie następującego wiersza:

$2y$10$8eO7Iq3rh.u3CXvhuhKq.Om.nQJN.Z1sBT2jvOqVKCGzP42T/4LBC

Sprawdź, czy Twoje zaszyfrowane hasło (hasła) zaczyna się $2y$. Potwierdzi to, że hasło a (i) zostało zaszyfrowane za pomocą zabezpieczonego algorytmu bcrypt.

Etap 3: zdefiniować użytkowników i zaszyfrowane hasła z plikiem ".htpasswd"

Plik ".htpasswd" zawiera odpowiednie szyfrowane hasła dla każdego z użytkowników zadeklarowanych w pliku. Tylko ci użytkownicy będą mogli logować się do katalogu, który chcesz chronić dostęp.

W tym celu, dla każdego użytkownika w tym pliku, wpisz wiersz wskazujący jego identyfikator i zaszyfrowane hasło:

user1:encrypted_password1
user2:encrypted_password2
user3:encrypted_password3

Zastąp wartość user1, user2 i user3 naszego przykładu własnymi nazwiskami użytkowników.

Zastąp również encrypted_password1, encrypted_password2 i encrypted_password3 własnymi zaszyfrowanymi hasłami pobranymi wcześniej.

Etap 4: skonfigurować reguły w pliku ".htaccess"

Zablokuj dostęp do kompletnego katalogu

W katalogu, który chcesz chronić, utwórz plik ".htaccess", używając następującego kodu:

AuthName "Indicates your login(s)"
AuthType Basic
AuthUserFile "/home/your_ftp_login/root_folder/admin/.htpasswd"
Require valid-user

W skrypcie powyżej zastąp następujące elementy własnymi wartościami:

  • "Indicates your login(s)"\: odpowiada użytkownikowi (użytkownikom) uprawnionemu(ym) do dostępu do pełnego katalogu. Jeśli masz wielu użytkowników, możesz je rozdzielić tylko za pomocą spacji.
  • your_ftp_login: login FTP, którego używasz do logowania się do przestrzeni dyskowej FTP. Aby pobrać login FTP, zapoznaj się z naszym przewodnikiem dotyczącym logowania do przestrzeni FTP.
  • root_folder/admin/.htpasswd: ścieżka dostępu do katalogu z katalogu głównego FTP Twojego hostingu do pliku ".htpasswd", który ma być używany do uwierzytelniania użytkowników autoryzowanych przez regułę zawartą w pliku ".htaccess".

Zablokuj dostęp do jednego lub kilku plików

Aby zablokować dostęp do jednego lub kilku plików, dodaj dyrektywa "Files" do pliku ".htaccess":

<Files test.php>

AuthName "Indicates your login(s)"
AuthType Basic
AuthUserFile "/home/your_ftp_login/root_folder/admin/.htpasswd"
Require valid-user

</Files>

W skrypcie powyżej zastąp następujące elementy własnymi wartościami:

  • test.php : nazwa określonego pliku lub grupa plików zawierająca w naszym przykładzie test.php (termin, w odniesieniu do którego należy stosować ograniczenie dostępu).
  • "Indicates your login(s)": odpowiada użytkownikowi (użytkownikom) uprawnionemu(-ym) do dostępu do plików, których nazwy zawierają test.php. Jeśli masz wielu użytkowników, możesz je rozdzielić na * przestrzeń*.
  • your_ftp_login: login FTP, którego używasz do logowania się do przestrzeni dyskowej FTP. Aby pobrać login FTP, zapoznaj się z naszym przewodnikiem dotyczącym logowania do przestrzeni FTP.
  • root_folder/admin/.htpasswd: ścieżka dostępu do katalogu z katalogu głównego FTP Twojego hostingu do pliku ".htpasswd", który ma być używany do uwierzytelniania użytkowników autoryzowanych przez dyrektywę pliku ".htaccess".

Należy podać dyrektywa "Files" dla każdego pliku do ochrony.

Dyrektywy "Kolejki" mają zastosowanie do wszystkich plików o tej samej nazwie lub kończących się określoną nazwą. Pod warunkiem, że są one zawarte w tym samym katalogu co ".htaccess" lub w jednym z jego podkatalogów.

W powyższej konfiguracji, tak jak "new_test.php" zawiera test.php*, dyrektywa "Files" miałaby również zastosowanie do pliku "new_test.php" zawartego w podkatalogu folderu "admin".

Ponadto, o ile użytkownik nie jest uwierzytelniony w celu uzyskania dostępu do plików objętych dyrektywą, mogą one nie pojawić się i nie mogą być "czytelne" za pomocą strony "index of".

Po zakończeniu uruchamiania plików ".htaccess" i ".htpasswd" usuń plik szyfrujący "crypt.php" z Twojego hostingu.

Sprawdź również

Oficjalna dokumentacja Apache

Logowanie do przestrzeni FTP hostingu WWW

Przewodnik - Operacje możliwe do wykonania za pomocą pliku ".htaccess"

Zablokuj dostęp do mojej strony dla niektórych adresów IP przez plik .htaccess

Prześlij link dostępowy do mojej strony za pomocą mod_rewrite za pomocą pliku .htaccess

W przypadku wyspecjalizowanych usług (pozycjonowanie, rozwój, etc.) skontaktuj się z partnerami OVHcloud.

Jeśli chcesz otrzymywać wsparcie w zakresie konfiguracji i użytkowania Twoich rozwiązań OVHcloud, zapoznaj się z naszymi ofertami pomocy.

Dołącz do grona naszych użytkowników.