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 swojej witrynie. Umożliwi to menedżerom haseł przechodzenie 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ł. Jednak te technologie są wciąż rozwijane, a sytuacja nie zmieni się szybko. Wielu deweloperów będzie nadal musiało zajmować się hasłami co najmniej przez kilka najbliższych lat. Czekając, aż nowe technologie i metody staną się powszechne, możemy przynajmniej ułatwić korzystanie z haseł.

W tym celu warto zapewnić lepszą obsługę menedżerów haseł.

Na czym polega przydatność menedżera haseł

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

Automatyczne wypełnianie hasła w odpowiednim polu wprowadzania danych: niektóre przeglądarki mogą znaleźć prawidłowe dane za pomocą heurystyki, nawet jeśli witryna nie jest zoptymalizowana pod tym kątem. Deweloperzy stron internetowych 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 autouzupełnianie haseł za pomocą menedżera haseł działa dobrze w internecie, ale biorąc pod uwagę ich cykl życia, aktualizowanie haseł, gdy jest to konieczne, jest równie ważne jak generowanie i autouzupełnianie. Aby można było z niej właściwie korzystać, menedżery haseł wprowadzają nową funkcję:

Wykrywanie luk w zabezpieczeniach i zalecanie ich aktualizacji: menedżery haseł mogą wykrywać, które są wielokrotnie używane, analizować entropię i słabość ich haseł, a nawet wykrywać potencjalnie ujawnione hasła lub takie, 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 proponowany jako dobrze znany adres URL do zmiany haseł. Wystarczy, że skonfigurujesz serwer, by przekierowywał żądania dotyczące .well-known/change-password na adres URL zmiany hasła w Twojej 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 swój serwer tak, aby przekierowywał żądanie 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">

Otwórz kod HTML strony zmiany hasła

Ta funkcja ma sprawić, że cykl życia haseł użytkowników będzie bardziej płynny. Aby umożliwić użytkownikowi bezproblemowe zaktualizowanie hasła, możesz zrobić 2 czynności:

  • 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 zasada /.well-known/change-password nie jest skonfigurowana, a Google nie zna funkcji 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ą określić, czy witryna obsługuje dobrze znany adres URL przy zmianie haseł. Aby to zrobić, przed przekierowaniem użytkownika na ten adres URL wysyła żądanie do /.well-known/change-password. 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:

  • Witryna renderująca po stronie serwera wyświetla komunikat „Nie znaleziono”, ale gdy nie ma treści, ale korzysta się z dyrektywy 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. Na przykład Chrome korzysta z tej ścieżki adresu URL, aby określić, czy może oczekiwać odpowiedniego adresu URL 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 treści, które nie istnieją.

Prześlij opinię

Jeśli masz opinię na temat specyfikacji, prześlij problem do repozytorium specyfikacji.

Zasoby

Zdjęcie autorstwa Matthew Brodeur z Unsplash