Hoje, recebi uma pergunta do meu gerente, perguntando-me o que é considerado um design aceitável para autenticação de um aplicativo de formulário da web, especialmente no que diz respeito à natureza de muitos navegadores populares, para "Lembrar senha" nos campos de login típicos de senha de nome de usuário .
Estou tendo problemas para encontrar uma resposta que considero aceitável. À luz das falhas de segurança embaraçosas da Sony, eu realmente quero ter cuidado, mesmo que os dados armazenados nas pessoas sejam de menor sensibilidade. Não estamos armazenando números de segurança social nem endereços, no entanto, estamos armazenando números de telefone, endereços de e-mail e uma foto de um visitante.
Ele está preocupado com o fato de que um usuário possa simplesmente Lembrar Senha em um terminal público; então, alguém pode simplesmente pular nesse terminal e começar a visualizar ou modificar dados de maneira não autorizada. No entanto, estou bastante certo de que, pelo menos nas estações de trabalho do Windows, o navegador não "Lembrará senha" nas contas de usuário do Windows.
Além disso, estou implementando uma criptografia de senha unidirecional no servidor (armazene a senha criptografada no banco de dados, criptografe a senha fornecida pelo usuário no servidor, compare com a string criptografada do banco de dados). Não há planos imediatos para incorporar a criptografia SSL, mas isso ainda é uma opção.
Existem falhas importantes de segurança nessa abordagem? Você tem alguma sugestão melhor?