Pomóż użytkownikom łatwo zmieniać hasła, dodając dobrze znany adres URL do zmiany hasła

Przekieruj żądanie do /.well-known/change-password do adresu URL zmiany hasła

Ustaw przekierowanie z /.well-known/change-password na stronę zmiany hasła w witrynie. Dzięki temu menedżerowie haseł będą mogli kierować użytkowników bezpośrednio na tę stronę.

Wprowadzenie

Jak pewnie wiesz, hasła nie są najlepszym sposobem na zarządzanie kontami. Na szczęście istnieją nowe technologie, takie jak WebAuthn, oraz metody, takie jak hasła jednorazowe, które pomagają nam zbliżyć się do świata bez haseł. Te technologie są jednak wciąż rozwijane, więc zmiany nie będą następować szybko. Wielu programistów będzie musiało zajmować się hasłami przez co najmniej kilka lat. Czekając, aż nowe technologie i metody staną się powszechne, możemy przynajmniej ułatwić korzystanie z haseł.

Dobrym sposobem na to jest zapewnienie lepszej obsługi menedżerów haseł.

Jak działają menedżery haseł

Menedżery haseł mogą być wbudowane w przeglądarkę lub być aplikacjami innych firm. Mogą pomagać użytkownikom na różne sposoby:

Automatyczne wypełnianie hasła w odpowiednim polu wprowadzania danych: niektóre przeglądarki mogą znaleźć poprawne dane za pomocą heurystyki, nawet jeśli witryna nie jest zoptymalizowana pod tym kątem. Deweloperzy internetowi mogą ułatwić pracę menedżerom haseł, poprawnie annotując tagi wejścia HTML.

Zapobieganie phishingowi: menedżerowie haseł zapamiętują, gdzie zostało ono zapisane, więc może być automatycznie wypełniane tylko w odpowiednich adresach URL, a nie na stronach phishingowych.

Generowanie silnych i unikalnych haseł: silne i unikalne hasła są generowane i przechowywane bezpośrednio przez menedżera haseł, więc użytkownicy nie muszą pamiętać ani jednego znaku hasła.

Generowanie i automatyczne wypełnianie haseł za pomocą menedżera haseł było już przydatne w internecie, ale biorąc pod uwagę cykl życia haseł, ich aktualizacja w razie potrzeby jest równie ważna co ich generowanie i automatyczne wypełnianie. Aby można było z niej właściwie korzystać, menedżery haseł wprowadzają nową funkcję:

Wykrywanie haseł o niskiej jakości i proponowanie ich aktualizacji: menedżerowie haseł mogą wykrywać hasła, które są używane wielokrotnie, analizować ich entropię i słabości, a także wykrywać hasła, które mogły zostać ujawnione lub które są znane jako niebezpieczne, ze źródeł takich jak Have I Been Pwned.

Menedżer haseł może ostrzegać użytkowników o problematycznych hasłach, ale proszenie użytkowników o przejście z strony głównej na stronę zmiany hasła powoduje wiele trudności, podobnie jak sam proces zmiany hasła (który różni się w zależności od witryny). Znacznie łatwiej byłoby, gdyby menedżerowie haseł mogli przekierować użytkownika bezpośrednio do adresu URL strony zmiany hasła. W takich sytuacjach przydaje się znany adres URL do zmiany haseł.

Rezerwując dobrze znany adres URL, który przekierowuje użytkownika do strony zmiany hasła, witryna może łatwo przekierowywać użytkowników do odpowiedniego miejsca, w którym mogą zmienić hasło.

Skonfiguruj „znany adres URL do zmiany haseł”.

.well-known/change-password jest znanym adresem URL do zmiany haseł. Wystarczy skonfigurować serwer tak, aby przekierowywał żądania dotyczące adresu .well-known/change-password do adresu URL do zmiany hasła w witrynie.

Załóżmy, że Twoja witryna to https://example.com, a adres URL zmiany hasła to https://example.com/settings/password. Wystarczy, że skonfigurujesz serwer tak, aby przekierowywał żądanie dotyczące adresu https://example.com/.well-known/change-password na adres https://example.com/settings/password. To wszystko. W przypadku przekierowania użyj kodu stanu HTTP 302 Found, 303 See Other lub 307 Temporary Redirect.

Możesz też przesyłać kod HTML pod adresem URL .well-known/change-password za pomocą tagu <meta> za pomocą http-equiv="refresh".

<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">

Ponownie otwórz kod HTML strony zmiany hasła

Celem tej funkcji jest ułatwienie użytkownikowi zarządzania cyklem życia hasła. Aby umożliwić użytkownikowi bezproblemową zmianę hasła, możesz zrobić 2 rzeczy:

  • Jeśli formularz zmiany hasła wymaga podania bieżącego hasła, dodaj tag autocomplete="current-password" do tagu <input>, aby ułatwić menedżerowi haseł automatyczne wypełnianie.
  • W polu nowego hasła (w wielu przypadkach są to 2 pola, aby mieć pewność, że użytkownik poprawnie wpisał nowe hasło) dodaj tag autocomplete="new-password" do tagu <input>, aby ułatwić menedżerowi haseł sugerowanie wygenerowanego hasła.

Więcej informacji znajdziesz w artykule Sprawdzone metody dotyczące formularza logowania.

Sposób wykorzystania w praktyce

Przykłady

Dzięki wdrożeniu w Apple Safari /.well-known/change-password jest już od jakiegoś czasu dostępny na niektórych popularnych stronach internetowych:

Wypróbuj je na sobie i zrób to samo z innymi.

Zgodność z przeglądarką

Znane adresy URL do zmiany haseł są obsługiwane w Safari od 2019 roku. Menedżer haseł w Chrome obsługuje tę funkcję od wersji 86 (która ma zostać wydana jako stabilna pod koniec października 2020 r.). Inne przeglądarki oparte na Chromium mogą dołączyć do tego grona. Firefox uważa, że warto wdrożyć tę funkcję, ale do sierpnia 2020 r. nie sygnalizował, że zamierza to zrobić.

Zachowanie Menedżera haseł w Chrome

Zobaczmy, jak Menedżer haseł w Chrome traktuje hasła podatne na ataki.

Menedżer haseł w Chrome może sprawdzić, czy hasła nie zostały ujawnione. Po przejściu do about://settings/passwords użytkownicy mogą uruchomić funkcję Sprawdzanie haseł w odniesieniu do zapisanych haseł i wyświetlić listę haseł, które zaleca się zaktualizować.

Funkcje sprawdzania haseł w Chrome

Po kliknięciu przycisku Zmień hasło obok hasła, które należy zaktualizować, przeglądarka:

  • Otwórz stronę zmiany hasła w witrynie, jeśli usługa /.well-known/change-password jest prawidłowo skonfigurowana.
  • Otwórz stronę główną witryny, jeśli /.well-known/change-password nie jest skonfigurowana i Google nie zna strony zastępczej.
Co się stanie, jeśli serwer zwróci wartość 200 OK, mimo że /.well-known/change-password nie istnieje?

Menedżery haseł próbują ustalić, czy dana witryna obsługuje znany adres URL służący do zmiany hasła, wysyłając prośbę do /.well-known/change-password, zanim przekierują użytkownika na ten adres URL. Jeśli żądanie zwraca odpowiedź 404 Not Found, wiadomo, że adres URL jest niedostępny. Odpowiedź 200 OK nie oznacza jednak koniecznie, że adres URL jest dostępny, ponieważ występują pewne szczególne przypadki:

  • Strona internetowa renderowana po stronie serwera wyświetla komunikat „Nie znaleziono”, gdy nie ma treści, ale z użyciem 200 OK.
  • Witryna renderowana po stronie serwera odpowiada kodem 200 OK, gdy po przekierowaniu na stronę „Nie znaleziono” nie ma treści.
  • Aplikacja jednostronicowa reaguje na obudowę z 200 OK i renderuje stronę „Nie znaleziono” po stronie klienta, gdy nie ma treści.

W takich przypadkach użytkownicy będą przekierowywani na stronę „Nie znaleziono”, co może być źródłem zamieszania.

Dlatego istnieje proponowany standard mechanizmu, który pozwala określić, czy serwer jest skonfigurowany tak, aby odpowiadać 404 Not Found, gdy nie ma żadnych treści, prosząc o losową stronę. W zasadzie adres URL jest też zarezerwowany:/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. Chrome na przykład używa tej ścieżki adresu URL, aby z wyprzedzeniem określić, czy może oczekiwać odpowiedniego adresu URL do zmiany hasła z /.well-known/change-password.

Podczas wdrażania /.well-known/change-password upewnij się, że twój serwer zwraca 404 Not Found dla wszystkich nieistniejących treści.

Prześlij opinię

Jeśli chcesz podzielić się opinią na temat specyfikacji, prześlij zgłoszenie do repozytorium specyfikacji.

Zasoby

Zdjęcie autorstwa Matthew Brodeur z Unsplash