Aiuta gli utenti a cambiare facilmente le password aggiungendo un URL noto per la modifica delle password

Reindirizza una richiesta a /.well-known/change-password all'URL di modifica delle password

Imposta un reindirizzamento da /.well-known/change-password alla pagina di modifica della password del tuo sito web. In questo modo, i gestori delle password potranno indirizzare gli utenti direttamente a quella pagina.

Introduzione

Come forse saprai, le password non sono il modo migliore per gestire gli account. Fortunatamente, esistono tecnologie emergenti come WebAuthn e tecniche come le password monouso che ci stanno aiutando ad avvicinarci a un mondo senza password. Tuttavia, queste tecnologie sono ancora in fase di sviluppo e le cose non cambieranno rapidamente. Molti sviluppatori dovranno comunque gestire le password per almeno i prossimi anni. Mentre aspettiamo che le tecnologie e le tecniche emergenti diventino comuni, possiamo almeno semplificare l'utilizzo delle password.

Un buon modo per farlo è fornire un supporto migliore per i gestori delle password.

Come aiutano i gestori delle password

I gestori delle password possono essere integrati nei browser o forniti come app di terze parti. Possono aiutare gli utenti in vari modi:

Compilare automaticamente la password per il campo di input corretto: alcuni browser possono trovare l'input corretto in modo euristico anche se il sito web non è ottimizzato per questo scopo. Gli sviluppatori web possono aiutare i gestori delle password annotando correttamente i tag di input HTML.

Prevenire il phishing: poiché i gestori delle password ricordano dove è stata registrata la password, questa può essere compilata automaticamente solo agli URL appropriati e non sui siti web di phishing.

Generare password efficaci e univoche: poiché le password efficaci e univoche vengono generate e memorizzate direttamente dal gestore delle password, gli utenti non devono ricordare un solo carattere della password.

La generazione e la compilazione automatica delle password tramite un gestore delle password hanno già servito bene il web, ma considerando il loro ciclo di vita, l'aggiornamento delle password ogni volta che è necessario è importante quanto la generazione e la compilazione automatica. Per sfruttare al meglio questa funzionalità, i gestori di password stanno aggiungendo una nuova funzionalità:

Rilevare le password vulnerabili e suggerire di aggiornarle: i gestori delle password possono rilevare le password riutilizzate, analizzarne l'entropia e la debolezza e persino rilevare password potenzialmente divulgate o note per essere non sicure da fonti come Have I Been Pwned.

Un gestore delle password può avvisare gli utenti in merito a password problematiche, ma è molto difficile chiedere agli utenti di passare dalla home page a una pagina di modifica della password, oltre a dover eseguire la procedura effettiva di modifica della password (che varia da sito a sito). Sarebbe molto più semplice se i gestori di password potessero indirizzare l'utente direttamente all'URL di modifica della password. È qui che diventa utile un URL noto per la modifica delle password.

Se un sito web riserva un percorso URL noto che reindirizza l'utente alla pagina di modifica della password, può reindirizzare facilmente gli utenti alla posizione corretta per modificare le password.

Configura "un URL noto per la modifica delle password"

.well-known/change-password è proposto come un URL noto per la modifica delle password. Tutto quello che devi fare è configurare il server per reindirizzare le richieste per .well-known/change-password all'URL di modifica della password del tuo sito web.

Ad esempio, supponiamo che il tuo sito web sia https://example.com e l'URL per la modifica della password sia https://example.com/settings/password. Dovrai solo impostare il server in modo che reindirizzi una richiesta per https://example.com/.well-known/change-password a https://example.com/settings/password. È tutto. Per il reindirizzamento, utilizza il codice di stato HTTP 302 Found, 303 See Other o 307 Temporary Redirect.

In alternativa, puoi pubblicare HTML all'URL .well-known/change-password con un tag <meta> utilizzando un http-equiv="refresh".

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

Rivedere il codice HTML della pagina di modifica della password

L'obiettivo di questa funzionalità è rendere più fluido il ciclo di vita delle password dell'utente. Puoi fare due cose per consentire all'utente di aggiornare la propria password senza problemi:

  • Se il modulo di modifica della password richiede la password attuale, aggiungi autocomplete="current-password" al tag <input> per consentire al gestore delle password di compilarlo automaticamente.
  • Per il nuovo campo della password (in molti casi si tratta di due campi per garantire che l'utente abbia inserito correttamente la nuova password), aggiungi autocomplete="new-password" al tag <input> per consentire al gestore delle password di suggerire una password generata.

Scopri di più sulle best practice per i moduli di accesso.

Come viene utilizzato nel mondo reale

Esempi

Grazie all'implementazione di Apple Safari, /.well-known/change-password è già disponibile da tempo su alcuni dei principali siti web:

Provali e fai lo stesso con i tuoi.

Compatibilità del browser

Un URL noto per la modifica delle password è supportato in Safari dal 2019. Il gestore delle password di Chrome inizierà a supportarlo a partire dalla versione 86 (la cui release stabile è prevista per la fine di ottobre 2020) e altri browser basati su Chromium potrebbero seguire l'esempio. Firefox ritiene che valga la pena implementarlo, ma non ha segnalato di avere intenzione di farlo ad agosto 2020.

Comportamento del gestore delle password di Chrome

Diamo un'occhiata a come il gestore delle password di Chrome tratta le password vulnerabili.

Il gestore delle password di Chrome è in grado di verificare la presenza di password compromesse. Se vai alla pagina about://settings/passwords, gli utenti possono eseguire il Controllo password sulle password memorizzate e visualizzare un elenco di password per cui è consigliato l'aggiornamento.

Funzionalità Controlla password di Chrome

Se fai clic sul pulsante Cambia password accanto a una password che ti consigliamo di aggiornare, il browser:

  • Apri la pagina di modifica della password del sito web se /.well-known/change-password è configurato correttamente.
  • Apri la home page del sito web se /.well-known/change-password non è configurato e Google non conosce il fallback.
Che cosa succede se il server restituisce 200 OK anche se /.well-known/change-password non esiste?

I gestori di password tentano di determinare se un sito web supporta un URL noto per la modifica delle password inviando una richiesta a /.well-known/change-password prima di reindirizzare effettivamente un utente a questo URL. Se la richiesta restituisce 404 Not Found è ovvio che l'URL non è disponibile, ma una risposta 200 OK non significa necessariamente che l'URL è disponibile, perché esistono alcuni casi limite:

  • Un sito web con rendering lato server mostra "Non trovato" quando non sono presenti contenuti, ma con 200 OK.
  • Un sito web con rendering lato server risponde con 200 OK quando non ci sono contenuti dopo il reindirizzamento alla pagina "Non trovato".
  • Un'app a pagina singola risponde con la shell con 200 OK e visualizza la pagina "Non trovata" sul lato client quando non sono presenti contenuti.

In questi casi limite, gli utenti verranno reindirizzati a una pagina "Pagina non trovata", il che sarà fonte di confusione.

Per questo motivo, esiste un meccanismo standard proposto per determinare se il server è configurato per rispondere con 404 Not Found quando non sono presenti contenuti, richiedendo una pagina casuale. In realtà, anche l'URL è riservato: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. Chrome, ad esempio, utilizza questo percorso dell'URL per determinare in anticipo se può aspettarsi un URL di modifica della password corretto da /.well-known/change-password.

Quando esegui il deployment di /.well-known/change-password, assicurati che il server restituisca 404 Not Found per i contenuti inesistenti.

Feedback

Se hai feedback sulla specifica, segnala un problema al repository della specifica.

Risorse

Foto di Matthew Brodeur su Unsplash