Ajude os usuários a mudar a senha com facilidade adicionando um URL conhecido para a troca de senhas

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 mudança de senha do seu site. Isso permitirá que os gerenciadores de senhas direcionem seus usuários diretamente para essa página.

Introdução

Como você sabe, as senhas não são a melhor maneira de gerenciar contas. Felizmente, há tecnologias emergentes, como o WebAuthn, e técnicas como senhas únicas que estão nos ajudando a chegar mais perto de um mundo sem senhas. No entanto, essas tecnologias ainda estão sendo desenvolvidas e as coisas não mudarão rapidamente. Muitos desenvolvedores ainda vão precisar lidar com senhas pelo menos pelos próximos anos. Enquanto aguardamos as tecnologias e técnicas emergentes se tornarem comuns, podemos pelo menos tornar as senhas mais fáceis de usar.

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

Como os gerenciadores de senhas podem ajudar

Os gerenciadores de senhas podem ser integrados a navegadores ou fornecidos como apps de terceiros. Elas 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 essa finalidade. Os desenvolvedores da Web podem ajudar os gerenciadores de senhas ao anotar corretamente as tags de entrada HTML.

Evitar phishing: como os gerenciadores de senhas lembram onde a senha foi registrada, a senha pode ser preenchida automaticamente apenas nos URLs adequados, e não em sites de phishing.

Gere senhas fortes e exclusivas: como as senhas fortes e exclusivas são geradas diretamente e armazenadas pelo gerenciador de senhas, os usuários não precisam se lembrar de um único caractere.

A geração e o preenchimento automático de senhas usando um gerenciador de senhas já serviu bem na 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 corretamente, 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 que foram reutilizadas, analisar a entropia e a fraqueza delas e até detectar senhas potencialmente vazadas ou senhas sabidamente não seguras de fontes como Have I Been Pwned.

Um gerenciador de senhas pode avisar os usuários sobre senhas problemáticas, mas há muitos desafios ao solicitar que eles naveguem da página inicial para uma página de alteração de senha, além de passar pelo processo real de alteração 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 alteração de senhas se torna útil.

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

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 seu servidor para redirecionar solicitações de .well-known/change-password para o URL de alteração de senha do seu site.

Por exemplo, seu site é https://example.com e o URL para alteração de senha é https://example.com/settings/password. Você só precisará configurar seu servidor para redirecionar uma solicitação de https://example.com/.well-known/change-password para https://example.com/settings/password. Pronto. Para o redirecionamento, use o código de status HTTP 302 Found, 303 See Other ou 307 Temporary Redirect.

Como alternativa, é possível 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">

Revisitar sua página de alteração de senha HTML

O objetivo desse recurso é ajudar na fluidez do ciclo de vida da senha do usuário. É possível fazer duas coisas para capacitar o usuário a atualizar a senha sem atrito:

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

Saiba mais em Práticas recomendadas do formulário de login.

Como são usadas no mundo real

Exemplos

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

Experimente você mesmo e faça o mesmo com o seu!

Compatibilidade com navegadores

Um URL conhecido para mudança de senhas tem suporte no Safari desde 2019. O gerenciador de senhas do Chrome está começando a oferecer suporte a ele a partir da versão 86, que está programado para o lançamento da versão estável no final de outubro de 2020, e outros navegadores baseados no Chromium poderão vir. 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 dar uma conferida em como o gerenciador de senhas do Chrome trata senhas vulneráveis.

O gerenciador de senhas do Chrome pode verificar senhas vazadas. Ao navegar para about://settings/passwords, os usuários podem executar a opção Verificar senhas nas senhas armazenadas e conferir uma lista de senhas recomendadas para atualização.

Funcionalidade Verificar senhas do Chrome

Ao clicar no botão Alterar senha ao lado de uma senha recomendada para atualização, o navegador:

  • Abra a página de alteração de senha do site se /.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 senhas tentam determinar se um site é compatível com um URL conhecido para mudança de 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 de renderização no servidor mostra a mensagem "Não encontrado" quando não há conteúdo mas com 200 OK.
  • Um site de renderização 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 "Não encontrado" no lado do cliente quando não há conteúdo.

Nesses casos extremos, os usuários são encaminhados para a página "Não encontrado", o que causa confusão.

Por isso, existe um mecanismo padrão proposto (em inglês) para determinar se o servidor está configurado para responder com 404 Not Found quando realmente não há conteúdo, por meio da solicitação de 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 adequado de mudança de senha de /.well-known/change-password com antecedência.

Ao implantar /.well-known/change-password, verifique se o servidor retorna 404 Not Found para qualquer conteúdo não existente.

Feedback

Se você tiver algum feedback sobre a especificação, registre um problema no repositório de especificações (link em inglês).

Recursos

Foto por Matthew Brodeur no Unsplash