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

Definir um redirecionamento de /.well-known/change-password para a página de alteração de senha do seu site. Isso permite que os gerenciadores de senhas naveguem pelos 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 de serviço. Felizmente, existem tecnologias emergentes, como WebAuthn e técnicas como senhas únicas que estão nos ajudando a chegar mais perto de um mundo sem senhas. No entanto, tecnologias ainda estão sendo desenvolvidas e as coisas não vão mudar tão rapidamente. Muitas desenvolvedores ainda precisarão lidar com senhas durante, pelo menos, anos. Enquanto esperamos que as tecnologias e técnicas emergentes se tornem comum, podemos pelo menos tornar as senhas mais fáceis de usar.

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

Como os gerenciadores de senhas ajudam

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

Preencher a senha automaticamente para o campo de entrada correto: alguns navegadores podem encontrar a entrada correta heurística, mesmo que o site não esteja otimizado para essa do propósito da tecnologia. Os desenvolvedores Web podem ajudar os gerenciadores de senhas anotando HTML corretamente tags de entrada.

Evitar phishing: os gerenciadores de senhas lembram onde a senha estava registrados, a senha poderá ser preenchida automaticamente somente nos URLs apropriados, e não em phishing.

Gere senhas fortes e exclusivas: porque senhas fortes e exclusivas são gerados e armazenados diretamente pelo gerenciador de senhas, os usuários não precisam memorizar um único caractere da senha.

A geração e o preenchimento automático de senhas usando um gerenciador de senhas já funcionaram bem na Web, mas, considerando seu ciclo de vida, atualizar as senhas sempre que necessário é tão importante quanto gerar e preencher automaticamente. Para aproveitar corretamente 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 que são reutilizadas, analisar a entropia e a fraqueza delas e e até detectar senhas possivelmente vazadas ou que não sejam seguras de fontes como Have I Been Pwned (em inglês).

Um gerenciador de senhas pode alertar os usuários sobre senhas problemáticas, mas há muito de atrito na solicitação para os usuários navegarem da página inicial para uma alteração de senha página, além de passar pelo processo real de alteração da senha (que varia de acordo com o site). Seria muito mais fácil se os gerenciadores de senhas pudessem levar o usuário diretamente até o URL de alteração de senha. Aqui é onde um URL conhecido para mudar senhas se tornar útil.

Reservando um caminho de URL conhecido que redireciona o usuário para a mudança. página de senha, o site pode redirecionar facilmente os usuários para o lugar certo para alterar as senhas deles.

Configurar "um URL conhecido para mudar senhas"

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

Por exemplo, digamos que seu site seja https://example.com e a alteração da senha é https://example.com/settings/password. Você só precisará definir para seu servidor redirecionar uma solicitação https://example.com/.well-known/change-password a https://example.com/settings/password. É isso. Para o redirecionamento, use 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">

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

O objetivo desse recurso é tornar o ciclo de vida das senhas mais fluido. Há duas formas de permitir que o usuário atualize a senha sem atrito:

  • Se o formulário de alteração de senha precisar da senha atual, adicione autocomplete="current-password" à tag <input> para ajudar na senha de preenchimento automático.
  • Para o campo de nova senha (em muitos casos, são dois campos para garantir que o usuário digitou a nova senha corretamente), adicione autocomplete="new-password" à tag <input> para ajudar na senha administrador sugerem uma senha gerada.

Saiba mais em Melhores formulários de login práticas recomendadas de autenticação.

Como ele é usado no mundo real

Exemplos

Graças ao SDK do Apple Safari, implementação /.well-known/change-password, já está disponível em algumas das principais sites por um tempo:

Teste e faça o mesmo pelo seu!

Compatibilidade com navegadores

Um URL conhecido para alteração de senhas tem suporte no Safari desde de 2019. O Gerenciador de senhas do Chrome será compatível com ele a partir da versão 86 (lançamento estável no final de outubro de 2020) e outros navegadores baseados no Chromium podem acompanhá-lo. O Firefox considera que vale a pena implementação, mas não há indicação de que faça isso 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. Por navegação para about://settings/passwords usuários podem executar Verificar senhas nos arquivos armazenados senhas e ver uma lista de senhas recomendadas para atualização.

Funcionalidade Verificar senhas do Chrome

Clicando no botão Alterar senha ao lado da senha recomendada para for atualizado, o navegador:

  • Abra a página de alteração de senha do site se /.well-known/change-password estiver esteja configurado corretamente.
  • Abrir a página inicial do site se o /.well-known/change-password não estiver configurado e o Google não sabe 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 oferece suporte a um URL conhecido para mudando de senha enviando uma solicitação para /.well-known/change-password antes 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 do lado do servidor mostra a mensagem "Não encontrado". quando não há conteúdo mas com 200 OK.
  • Um site de renderização pelo servidor responde com 200 OK quando não há conteúdo depois de redirecionar para "Não encontrado" página.
  • Um app de página única responde com o shell com 200 OK e renderiza o erro "Not encontradas" no lado do cliente quando não há conteúdo.

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

É por isso que existe um padrão proposto mecanismo para determinar se o servidor está configurado para responder com 404 Not Found quando realmente não há conteúdo, solicitando uma página aleatória. Na verdade, O URL também é 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 espera uma o URL correto para alterar a 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, envie um problema para ela repositório.

Recursos

Foto de Matthew Brodeur no Unsplash