Jak zabezpieczyć hasłem stronę internetową lub pojedynczą podstronę
Jak zabezpieczyć stronę hasłem
Jak zabezpieczyć hasłem stronę internetową lub podstronę (prawdziwe opcje) | We.Inc
Zabezpiecz hasłem podstronę lub całą witrynę w sposób, który naprawdę działa: Basic auth na serwerze, hasło strony w hostingu lub kreatorze albo konta członków. Do tego wyjaśnienie, dlaczego blokady tylko w skrypcie zawodzą.
Prawdziwe sprawdzenie hasła odbywa się na serwerze, zanim strona zostanie wysłana. Użyj ustawienia hasła strony w swoim hostingu lub kreatorze, uwierzytelniania HTTP Basic w Apache lub Nginx albo porządnych kont członków. Pole hasła napisane w JavaScripcie tylko ukrywa stronę w przeglądarce; treść i tak dociera, a każdy może przeczytać źródło.
Sposoby na zabezpieczenie strony hasłem
Opcja
Chroni treść?
Najlepsze do
Hasło strony w kreatorze lub CMS
Tak, sprawdzane przez platformę
Jednej prywatnej strony dla klienta lub wydarzenia
HTTP Basic auth (Apache, Nginx)
Tak, przez HTTPS
Strony testowej (staging) lub całego folderu
Konta członków
Tak, dla każdej osoby
Płatnych lub długo działających stref prywatnych
Okienko prompt w JavaScripcie lub ukryty div
Nie
Niczego, co ma znaczenie
Wpisz nazwę użytkownika i hasło, aby zobaczyć dokładny nagłówek Authorization, który przeglądarka wysyła przy uwierzytelnianiu Basic, i jak łatwo zamienia się on z powrotem w zwykły tekst. Widać tu, dlaczego Basic auth może działać wyłącznie przez HTTPS. Kodowanie odbywa się na Twoim urządzeniu; nic nie jest wysyłane.
Zdecyduj, czy wystarczy jedno wspólne hasło, czy każda osoba potrzebuje własnego logowania.
W kreatorze stron lub WordPressie najpierw poszukaj ustawienia widoczności strony lub hasła.
Na własnym serwerze dodaj uwierzytelnianie Basic do folderu lub lokalizacji, a plik z hasłami trzymaj poza publicznym folderem strony.
Sprawdź, czy strona wymusza HTTPS, a potem przetestuj w prywatnym oknie przeglądarki.
Daj Basic auth długie hasło, którego nie używasz nigdzie indziej, i zmień je, gdy projekt lub podgląd się zakończy.
W WordPressie redaktorzy i administratorzy widzą wpisy chronione hasłem na ekranie edycji bez podawania hasła.
Chroniona strona może nadal pokazywać swój tytuł. Nie umieszczaj w tytule strony prywatnych informacji.
Poproś też wyszukiwarki tagiem noindex, by nie pokazywały prywatnej strony, ale nigdy nie traktuj tego jako ochrony.
Najczęściej zadawane pytania
Czy mogę zabezpieczyć stronę hasłem samym HTML?
Nie. HTML nie ma możliwości sprawdzenia hasła. Wszystko, co umieścisz w pliku, pobiera każdy odwiedzający, więc sprawdzenie musi odbyć się na serwerze lub platformie.
Czy uwierzytelnianie HTTP Basic jest bezpieczne?
Tylko przez HTTPS. RFC 7617 zauważa, że hasło przechodzi przez sieć otwartym tekstem, bo Base64 to kodowanie, a nie szyfrowanie, i mówi, że schemat nie powinien chronić wrażliwych informacji bez czegoś takiego jak HTTPS.
Jak zabezpieczyć hasłem stronę w WordPressie?
Otwórz stronę lub wpis, ustaw Widoczność na Chronione hasłem, wpisz hasło i zaktualizuj. Odwiedzający zobaczą tytuł i pole hasła zamiast treści.
Czy mogę zabezpieczyć całą witrynę WordPress?
Dokumentacja WordPressa mówi, że ukrywanie całej witryny nie jest częścią rdzenia, i odsyła do wtyczek lub reguł serwera, takich jak .htaccess.
Co pokazuje przeglądarka przy Basic auth?
Serwer odpowiada kodem 401 i nagłówkiem WWW-Authenticate. Przeglądarka prosi wtedy o nazwę użytkownika i hasło i powtarza żądanie z nagłówkiem Authorization.
Dlaczego blokady tylko w skrypcie zawodzą
Popularny tutorial dodaje prompt() i porównuje odpowiedź z hasłem zapisanym w tym samym skrypcie. Przeglądarka pobrała już całą stronę, a hasło leży w źródle dla każdego, kto kliknie wyświetl źródło. Wyłączenie JavaScriptu całkowicie pomija sprawdzenie.
To samo dotyczy treści ukrytych przez CSS. Jeśli słowa są w HTML, są publiczne.
Wybór spośród prawdziwych opcji
Dla jednej strony udostępnianej klientowi najszybszym bezpiecznym wyborem jest hasło strony w Twoim kreatorze lub CMS. Dla testowej kopii strony Basic auth na serwerze utrzymuje całość w prywatności, także przed robotami wyszukiwarek.
Gdy różne osoby potrzebują różnego dostępu albo później trzeba odebrać dostęp jednej osobie, używaj kont. Jednego wspólnego hasła nie da się odebrać jednej osobie bez zmiany go dla wszystkich.
Konfiguracje serwera, które naprawdę chronią folder
Utwórz plik haseł narzędziem htpasswd dostarczanym z Apache (na przykład htpasswd -c /etc/apache2/.htpasswd client) i trzymaj go poza publicznym folderem strony.
Apache: .htaccess w folderze do ochrony
Require valid-user wpuszcza każdego, kto jest wymieniony w pliku haseł.
Nginx: ochrona jednej lokalizacji
Nginx czyta ten sam format pliku htpasswd. Po edycji przeładuj Nginx.
Czego nie robić: blokada w JavaScripcie
Pokazana, abyś umiał ją rozpoznać. Hasło i treść są w pliku, który pobiera każdy odwiedzający.
Co wysyła Basic auth
Nazwa użytkownika
Hasło
Nazwa użytkownika nie może zawierać dwukropka, bo dwukropek oddziela ją od hasła.
Nagłówek wysyłany przez przeglądarkę z każdym żądaniem
Odkodowane przez każdego, kto zobaczy żądanie
Base64 to nie szyfrowanie. Bez HTTPS ten nagłówek zdradza hasło.