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 em desenvolvimento e as coisas não mudam tão rápido. Muitos desenvolvedores ainda vão precisar lidar com senhas pelo menos nos próximos anos. Enquanto aguardamos as tecnologias e técnicas emergentes se tornarem 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 aos 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 heuristicamente, 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 senhas fortes e exclusivas são geradas e armazenadas diretamente pelo gerenciador de senhas, os usuários não precisam se lembrar de um único 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.

Um gerenciador de senhas pode avisar os usuários sobre senhas problemáticas, mas há muito atrito ao solicitar que os usuários naveguem da página inicial para uma página de alteração de senha, além do processo real de mudar a senha, que varia de acordo com o 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 alterar 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 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, é 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">

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 mudança de senha precisar da senha atual, adicione autocomplete="current-password" à tag <input> para ajudar o gerenciador de senhas a preenchê-la 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 acha que vale a pena ser implementado, mas não indicou que planeja fazê-lo em agosto de 2020.

Comportamento do gerenciador de senhas do Chrome

Vamos analisar como o gerenciador de senhas do Chrome trata as 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 exibe "Not found" 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 serão encaminhados para uma página "Não encontrada", o que causará 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