Ułatw użytkownikom zmianę haseł, dodając znany adres URL do zmiany hasła

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

Ustaw przekierowanie z /.well-known/change-password na stronę zmiany hasła w Twojej witrynie. Umożliwi to menedżerom haseł przechodzenie użytkowników bezpośrednio na tę stronę.

Wstęp

Jak pewnie wiesz, hasła nie są najlepszym sposobem zarządzania kontami. Na szczęście istnieją nowe technologie takie jak WebAuthn oraz techniki takie jak hasła jednorazowe, które pomagają zbliżyć się do świata bez haseł. Technologie te są jednak wciąż rozwijane i nie będą się one zmieniać szybko. Wielu programistów będzie musiało się martwić o hasła przez co najmniej kilka najbliższych lat. Czekając, aż nowe technologie i techniki staną się powszechne, możemy przynajmniej ułatwić korzystanie z haseł.

Dobrym sposobem jest zapewnienie lepszej pomocy menedżerom haseł.

Do czego przydają się menedżery haseł

Mogą być wbudowane w przeglądarki lub udostępniane jako aplikacje innych firm. Mogą one pomagać użytkownikom na różne sposoby:

Autouzupełnianie hasła we właściwym polu do wprowadzania danych: niektóre przeglądarki mogą heurystycznie znajdować poprawne dane wejściowe, nawet jeśli witryna nie jest zoptymalizowana pod kątem tego celu. Programiści stron internetowych mogą pomóc menedżerom haseł przez prawidłowe adnotacje do tagów wejściowych HTML.

Zapobieganie wyłudzaniu informacji: menedżer haseł zapamiętuje, gdzie zapisano hasło, dlatego hasło może być automatycznie uzupełniane tylko pod właściwym adresem URL, a nie w witrynach wyłudzających informacje.

Generowanie silnych i unikalnych haseł: silne i unikalne hasła są generowane i przechowywane bezpośrednio przez menedżera haseł, dzięki czemu użytkownicy nie muszą zapamiętywać ani jednego znaku hasła.

Generowanie i autouzupełnianie haseł za pomocą menedżera haseł już dobrze sprawdzało się w internecie, ale biorąc pod uwagę ich cykl życia, aktualizowanie haseł w razie potrzeby jest równie ważne jak ich generowanie i autouzupełnianie. Aby było to możliwe, menedżerowie haseł dodają nową funkcję:

Wykrywanie luk w zabezpieczeniach i proponowanie ich aktualizacji: menedżer haseł może wykrywać hasła, które są ponownie użyte, analizować ich entropię i słabość, a nawet wykrywać hasła, które zostały ujawnione, lub hasła uznane za niebezpieczne ze źródeł takich jak Mam I Been Pwned.

Menedżer haseł może ostrzegać użytkowników o problematycznych hasłach, ale pojawia się prośba o przejście ze strony głównej na stronę zmiany hasła, która nie jest związana z rzeczywistym procesem zmiany hasła (która różni się w zależności od witryny). Byłoby znacznie łatwiej, gdyby menedżerowie haseł mogli przejść bezpośrednio do adresu URL zmiany hasła. W takim przypadku przydatny jest dobrze znany adres URL do zmiany haseł.

Dzięki rezerwowaniu dobrze znanej ścieżki adresu URL przekierowującej użytkownika na stronę zmiany hasła witryna może łatwo przekierować użytkownika we właściwe miejsce, w którym może zmienić hasło.

Konfigurowanie „dobrze znanego adresu URL do zmiany haseł”

.well-known/change-password jest proponowany jako dobrze znany adres URL do zmiany haseł. Musisz tylko skonfigurować serwer tak, aby przekierowywał żądania dotyczące strony .well-known/change-password na adres URL zmiany hasła w Twojej witrynie.

Załóżmy na przykład, że Twoja witryna to https://example.com, a adres URL do zmiany hasła to https://example.com/settings/password. Musisz tylko skonfigurować serwer w taki sposób, aby przekierowywał żądanie dotyczące strony https://example.com/.well-known/change-password pod adres https://example.com/settings/password. To wszystko. Do przekierowania użyj kodu stanu HTTP 302 Found, 303 See Other lub 307 Temporary Redirect.

Możesz też wyświetlać 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">

Otwórz stronę HTML strony zmiany hasła

Ta funkcja ma na celu ułatwienie korzystania z cyklu życia hasła użytkownika. Aby użytkownik mógł bez wysiłku zmienić hasło, możesz zrobić 2 rzeczy:

  • Jeśli Twój formularz zmiany hasła wymaga podania aktualnego hasła, dodaj autocomplete="current-password" do tagu <input>, aby pomóc menedżerowi haseł w jego autouzupełnianiu.
  • W przypadku nowego pola hasła (w wielu przypadkach są to 2 pola, aby sprawdzić, czy użytkownik prawidłowo wpisał nowe hasło), dodaj do tagu <input> atrybut autocomplete="new-password", aby ułatwić menedżerowi haseł zaproponowanie wygenerowanego hasła.

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

Jak jest używany w świecie rzeczywistym

Przykłady

Dzięki wdrożeniu przeglądarki Apple Safari /.well-known/change-password jest już od jakiegoś czasu dostępne w niektórych popularnych witrynach:

Wypróbuj je, a potem zrób to samo ze swoim.

Zgodność z przeglądarką

Dobrze znany adres URL do zmiany hasła jest obsługiwany w Safari od 2019 roku. Menedżer haseł Chrome zacznie obsługiwać go od wersji 86 i nowszych (który ma zostać udostępniona w wersji stabilnej pod koniec października 2020 r.). W niedługim czasie mogą pojawić się też inne przeglądarki oparte na Chromium. Firefox uważa, że warto wdrożyć tę funkcję, ale nie poinformował, że zamierza to zrobić w sierpniu 2020 roku.

Działanie menedżera haseł w Chrome

Przyjrzyjmy się, jak menedżer haseł w Chrome chroni hasła podatne na ataki.

Menedżer haseł Chrome może sprawdzać, czy hasła nie zostały ujawnione. Gdy otworzysz about://settings/passwords, użytkownicy będą mogli uruchomić funkcję Sprawdź hasła względem zapisanych haseł i zobaczyć listę haseł, które zalecamy zaktualizować.

Funkcja Sprawdź hasła w Chrome

Gdy klikniesz przycisk Zmień hasło obok hasła, które zaleca się zaktualizować, przeglądarka:

  • Otwórz stronę zmiany hasła w witrynie, jeśli /.well-known/change-password jest prawidłowo skonfigurowany.
  • Jeśli nie skonfigurowano /.well-known/change-password, a Google nie zna wartości zastępczej, otwórz stronę główną witryny.
Co się stanie, jeśli serwer zwróci wartość 200 OK, nawet jeśli wartość /.well-known/change-password nie istnieje?

Menedżerowie haseł próbują ustalić, czy witryna obsługuje dobrze znany adres URL do zmiany haseł. Aby to zrobić, przed przekierowaniem użytkownika na ten adres wysyła żądanie do /.well-known/change-password. Jeśli żądanie zwraca wartość 404 Not Found, jest oczywiste, że adres URL jest niedostępny, ale odpowiedź 200 OK niekoniecznie oznacza, że adres URL jest dostępny, bo istnieje kilka skrajnych przypadków:

  • Witryna renderująca po stronie serwera wyświetla komunikat „Nie znaleziono”, gdy nie ma treści, ale z parametrem 200 OK.
  • Jeśli po przekierowaniu na stronę „Nie znaleziono”, witryna renderująca po stronie serwera wysyła odpowiedź 200 OK, gdy nie ma żadnej treści.
  • Aplikacja składająca się z pojedynczej strony wysyła w odpowiedzi powłokę 200 OK i w przypadku braku treści renderuje stronę „Nie znaleziono” po stronie klienta.

W takich przypadkach skrajnych użytkownicy zostaną przekierowani na stronę „Nie znaleziono”, co będzie źródłem nieporozumień.

Dlatego istnieje proponowany standardowy mechanizm pozwalający określić, czy serwer jest skonfigurowany do odpowiadania z wykorzystaniem 404 Not Found w przypadku rzeczywistej braku treści. W tym celu wysyła żądanie losowej strony. Adres URL jest też zarezerwowany: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. Na przykład Chrome używa tej ścieżki adresu URL do określenia, czy należy spodziewać się z wyprzedzeniem poprawnego adresu URL zmiany hasła z /.well-known/change-password.

Podczas wdrażania /.well-known/change-password upewnij się, że serwer zwraca wartość 404 Not Found w przypadku wszystkich nieistniejących treści.

Prześlij opinię

Jeśli chcesz przesłać opinię na temat specyfikacji, zgłoś problem do repozytorium specyfikacji.

Zasoby

Zdjęcie: Matthew Brodeur, Unsplash