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.
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.
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 de alteração 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, envie um problema para ela repositório.
Recursos
- Um URL conhecido para mudar Senhas
- Como detectar a confiabilidade do status HTTP códigos
- Práticas recomendadas para o formulário de login
Foto de Matthew Brodeur no Unsplash