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

Reindirizza una richiesta a /.well-known/change-password all'URL change-passwords

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 alla pagina in questione.

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 continueranno a dover gestire le password almeno per i prossimi anni. Nell'attesa che le tecnologie e le tecniche emergenti si mettano in comune, possiamo almeno rendere le password più facili da usare.

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

Vantaggi dei gestori delle password

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

Compila automaticamente la password per il campo di immissione 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. I gestori delle password ricordano dove è stata registrata la password, pertanto la password può essere compilata automaticamente solo negli URL appropriati e non sui siti web di phishing.

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

La generazione e la compilazione automatica delle password utilizzando un gestore delle password hanno già funzionato bene sul web; tuttavia, considerato il loro ciclo di vita, aggiornare le password ogni volta che è necessario è importante quanto la generazione e la compilazione automatica. Per utilizzarlo correttamente, i gestori delle password stanno aggiungendo una nuova funzionalità:

Rileva le password vulnerabili e suggerisci 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 caso di password problematiche, ma richiedere agli utenti di passare dalla home page a una pagina di modifica della password è molto complicato, oltre a seguire l'effettivo processo di modifica della password (che varia da un sito all'altro). Sarebbe molto più facile se i gestori delle password potessero navigare l'utente direttamente all'URL per cambiare password. È qui che diventa utile un URL noto per la modifica delle password.

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

Configura un "URL noto per la modifica delle password"

.well-known/change-password viene proposto come URL noto per la modifica delle password. Devi solo configurare il server in modo che reindirizzi 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 che 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 codice HTML nell'URL .well-known/change-password con un tag <meta> utilizzando http-equiv="refresh".

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

Visita di nuovo il codice HTML della pagina di modifica della password

L'obiettivo di questa funzionalità è facilitare il ciclo di vita delle password degli utenti. Puoi consentire all'utente di aggiornare la password senza attriti in due modi:

  • Se il modulo per la modifica della password richiede la password corrente, aggiungi autocomplete="current-password" al tag <input> per consentire al gestore delle password di compilarla automaticamente.
  • Per il campo della nuova password (in molti casi sono presenti due campi per verificare che l'utente abbia inserito correttamente la nuova password), aggiungi autocomplete="new-password" al tag <input> per aiutare il gestore delle password a suggerire una password generata.

Scopri di più nelle best practice per il modulo di accesso.

Come viene utilizzato nel mondo reale

Esempi

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

Provali anche tu 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. Firefox ne vale la pena implementarla, ma non ha segnalato che prevede 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 controllare la presenza di password trapelate. Accedendo a about://settings/passwords, gli utenti possono eseguire Controlla le password rispetto alle password memorizzate e visualizzare un elenco di password consigliate per l'aggiornamento.

Funzionalità Controlla password di Chrome

Se fai clic sul pulsante Cambia password accanto a una password che si consiglia 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 l'elemento di riserva.
Che cosa succede se il server restituisce 200 OK anche se /.well-known/change-password non esiste?

I gestori delle password cercano 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 inoltrare 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 sia disponibile, perché esistono alcuni casi limite:

  • Un sito web di rendering lato server mostra la dicitura "Non trovato" se non sono presenti contenuti, ma con 200 OK.
  • Un sito web di 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 trovato" sul lato client quando non ci sono contenuti.

Per questi casi limite, gli utenti verranno reindirizzati a una pagina "Non trovato", che creerà confusione.

Ecco perché è stato proposto un meccanismo standard per determinare se il server è configurato per rispondere con 404 Not Found quando effettivamente 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. Ad esempio, Chrome utilizza questo percorso dell'URL per stabilire se è possibile prevedere in anticipo 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 tutti i contenuti non esistenti.

Feedback

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

Risorse

Foto di Matthew Brodeur su Unsplash