Skip to content

027. Passwordless

Filipe Deschamps edited this page Jan 18, 2022 · 1 revision

07/01/22

Como o TabNews pretende ser um projeto Open Source e bastante aberto ao público, eu prevejo que ele também será um playground popular para ataques de hackers e eu acho isso super saudável. Desde o início do projeto estou com a postura que isso deveria ser muito bem recebido, pois seria muito legal pessoas da Segurança da Informação poderem treinar suas habilidades contra nossas implementações. Não é difícil entender que os dois lados irão ganhar se tudo for feito com boa vontade.

Mas sempre há pessoas que não saberão brincar, e depois da última onda de ataques que foi divulgada na Newsletter, quanto menos dados tivermos na nossa base, melhor. Um deles que é super sensível é a senha do usuário. Colocando em comparação, um email também é um dado sensível, mas você compartilha esse dado com outras pessoas... já uma senha não, ela é um segredo que somente o detentor deveria saber. Então novamente, quanto menos dados tivermos na nossa base sobre o usuário, melhor, porque menos atrativa essa base fica.

Com isso em mente e conversando rapidamente com a turma através desse pull request, me parece uma escolha muito sábia trabalharmos sem senha alguma e somente com tokens gerados por email, o que também é conhecido por Passwordless ou Magic Link.

Para fazer o login, o usuário digita seu email e em seguida recebe um link, onde ao clicar nesse link, ele entra logado no site. Para algumas pessoas, isso é uma UX melhor, pois não precisa ficar decorando ou reutilizando senhas entre sites e ganha de graça quase que um segundo fator de autenticação. Para outras pessoas, isso é uma UX pior, pois faz o usuário dar um balão maior. Eu concordo que é uma UX pior para um usuário acostumado a repetir senhas em todos os sites. Pessoalmente (e isso não tem peso no que deveria ser feito no TabNews), eu sempre habilito um segundo fator de autenticação, então já estou acostumado a dar um balão maior nas minhas autenticações. De qualquer forma, e dado ao que comentei do "playground" ali acima, sugiro não manter senhas no banco de dados.