Ajude os usuários a mudar a senha com facilidade adicionando um URL conhecido para isso

Redirecionar uma solicitação para /.well-known/change-password para o URL de alteração de senhas

Defina um redirecionamento de /.well-known/change-password para a página de alteração de senha do seu site. Isso vai permitir que os gerenciadores de senhas direcionem os usuários diretamente para essa página.

Introdução

Como você deve saber, as senhas não são a melhor maneira de gerenciar contas. Felizmente, existem tecnologias emergentes, como WebAuthn, e técnicas, como senhas únicas, que estão nos ajudando a chegar a um mundo sem senhas. No entanto, essas tecnologias ainda estão sendo desenvolvidas, e as coisas não vão mudar rapidamente. Muitos desenvolvedores ainda vão precisar lidar com senhas pelo menos nos próximos anos. Enquanto esperamos que as tecnologias e técnicas emergentes se tornem comuns, podemos pelo menos facilitar o uso de senhas.

Uma boa maneira de fazer isso é oferecer suporte melhor para gerenciadores de senhas.

Como os gerenciadores de senhas ajudam

Os gerenciadores de senha podem ser integrados a navegadores ou fornecidos como apps de terceiros. Eles podem ajudar os usuários de várias maneiras:

Preenchimento automático da senha para o campo de entrada correto: alguns navegadores podem encontrar a entrada correta de forma heurística, mesmo que o site não esteja otimizado para esse propósito. Os desenvolvedores da Web podem ajudar os gerenciadores de senhas anotando corretamente as tags de entrada HTML.

Prevenir phishing: como os gerenciadores de senhas lembram onde a senha foi gravada, ela só pode ser preenchida automaticamente em URLs apropriados, e não em sites de phishing.

Gerar senhas fortes e exclusivas: como as senhas fortes e exclusivas são geradas e armazenadas diretamente pelo gerenciador de senhas, os usuários não precisam se lembrar de nenhum caractere da senha.

A geração e o preenchimento automático de senhas usando um gerenciador de senhas já foram úteis para a Web, mas, considerando o ciclo de vida delas, atualizar as senhas sempre que necessário é tão importante quanto gerar e preencher automaticamente. Para aproveitar isso, os gerenciadores de senhas estão adicionando um novo recurso:

Detectar senhas vulneráveis e sugerir a atualização delas: os gerenciadores de senhas podem detectar senhas reutilizadas, analisar a entropia e a fraqueza delas e até detectar senhas potencialmente vazadas ou que são conhecidas por serem inseguras em fontes como o Have I Been Pwned (em inglês).

Um gerenciador de senhas pode alertar os usuários sobre senhas problemáticas, mas há muita fricção ao pedir que os usuários naveguem da página inicial para uma página de mudança de senha, além de passar pelo processo real de mudança da senha (que varia de site para site). Seria muito mais fácil se os gerenciadores de senhas pudessem direcionar o usuário diretamente para o URL de alteração de senha. É aqui que um URL conhecido para alterar senhas se torna útil.

Ao reservar um caminho de URL conhecido que redireciona o usuário para a página de alteração de senha, o site pode redirecionar facilmente os usuários para o lugar certo para mudar as senhas.

Configurar "um URL conhecido para alterar senhas"

.well-known/change-password é proposto como um URL conhecido para alteração de senhas. Tudo o que você precisa fazer é configurar o servidor para redirecionar as solicitações de .well-known/change-password para o URL de alteração de senha do seu site.

Por exemplo, digamos que seu site seja https://example.com e que o URL de alteração de senha seja https://example.com/settings/password. Basta definir o servidor para redirecionar uma solicitação de https://example.com/.well-known/change-password para https://example.com/settings/password. É isso. Para o redirecionamento, use o código de status HTTP 302 Found, 303 See Other ou 307 Temporary Redirect.

Como alternativa, você pode veicular HTML no URL .well-known/change-password com uma tag <meta> usando um http-equiv="refresh".

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

Acesse o HTML da página de alteração de senha

O objetivo desse recurso é ajudar o ciclo de vida da senha do usuário a ser mais fluido. Você pode fazer duas coisas para permitir que o usuário atualize a senha sem dificuldades:

  • Se o formulário de alteração de senha precisar da senha atual, adicione autocomplete="current-password" à tag <input> para ajudar o gerenciador de senhas a preencher automaticamente.
  • Para o campo de nova senha (em muitos casos, são dois campos para garantir que o usuário tenha inserido a nova senha corretamente), adicione autocomplete="new-password" à tag <input> para ajudar o gerenciador de senhas a sugerir uma senha gerada.

Saiba mais em Práticas recomendadas para formulários de login.

Como ele é usado no mundo real

Exemplos

Graças à implementação do Apple Safari, /.well-known/change-password já está disponível em alguns sites principais há algum tempo:

Teste-as e faça o mesmo com as suas.

Compatibilidade com navegadores

Um URL conhecido para a alteração de senhas tem suporte no Safari desde 2019. O Gerenciador de senhas do Chrome começa a oferecer suporte a ela a partir da versão 86 (que está programada para o lançamento estável no final de outubro de 2020) e outros navegadores baseados no Chromium podem seguir o exemplo. O Firefox considera que vale a pena implementar, mas não sinalizou que planeja fazer isso a partir de agosto de 2020.

Comportamento do gerenciador de senhas do Chrome

Vamos conferir como o Gerenciador de senhas do Chrome trata senhas vulneráveis.

O gerenciador de senhas do Chrome pode verificar se há senhas vazadas. Ao navegar para about://settings/passwords, os usuários podem executar a verificação de senhas em relação às senhas armazenadas e conferir uma lista de senhas que precisam ser atualizadas.

A funcionalidade Verificar senhas do Chrome

Ao clicar no botão Change password ao lado de uma senha que precisa ser atualizada, o navegador:

  • Abra a página de alteração de senha do site se o /.well-known/change-password estiver configurado corretamente.
  • Abra a página inicial do site se /.well-known/change-password não estiver configurado e o Google não conhecer o substituto.
E se o servidor retornar 200 OK mesmo que /.well-known/change-password não exista?

Os gerenciadores de senha tentam determinar se um site oferece suporte a um URL conhecido para alterar senhas enviando uma solicitação para /.well-known/change-password antes de encaminhar um usuário para esse URL. Se a solicitação retornar 404 Not Found, é óbvio que o URL não está disponível, mas uma resposta 200 OK não significa necessariamente que o URL está disponível, porque há alguns casos extremos:

  • Um site com renderização do lado do servidor mostra "Not found" quando não há conteúdo, mas com 200 OK.
  • Um site renderizado do lado do servidor responde com 200 OK quando não há conteúdo após o redirecionamento para a página "Não encontrado".
  • Um app de página única responde com o shell com 200 OK e renderiza a página "Not found" no lado do cliente quando não há conteúdo.

Nesses casos extremos, os usuários serão encaminhados para uma página "Não encontrado", o que vai ser uma fonte de confusão.

É por isso que há um mecanismo padrão proposto para determinar se o servidor está configurado para responder com 404 Not Found quando não há conteúdo, solicitando uma página aleatória. Na verdade, o URL também está reservado: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. O Chrome, por exemplo, usa esse caminho de URL para determinar se pode esperar um URL de alteração de senha adequado de /.well-known/change-password com antecedência.

Ao implantar /.well-known/change-password, verifique se o servidor retorna 404 Not Found para conteúdo inválido.

Feedback

Se você tiver algum feedback sobre a especificação, envie um problema para o repositório de especificações.

Recursos

Foto de Matthew Brodeur no Unsplash