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.
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.
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
- Um URL conhecido para alteração de senhas
- Como detectar a confiabilidade dos códigos de status HTTP
- Práticas recomendadas para formulários de login
Foto por Matthew Brodeur no Unsplash