Autenticação
Usuários reais, senhas com hash correto, falhas bem tratadas.
Autenticação com Spring Security
No dia em que um banco de dados vaza, a única coisa que ainda protege seus usuários é a forma como as senhas foram armazenadas. Isso não é uma hipótese pessimista: dezenas de milhões de contas circulam em listas públicas, e a imensa maioria vem de bases em que as senhas estavam em texto puro, ou com hash gerado por um algoritmo projetado para ser rápido. Uma senha com hash MD5 é recuperada em poucos segundos com uma GPU usada.
A autenticação é, portanto, o ponto do curso em que a exatidão mais importa. O restante — as regras de URL, os papéis, os tokens — protege uma sessão; o hash protege seus usuários depois do incidente, inclusive em outros sites onde eles reutilizaram a mesma senha.
O Spring Security leva essa questão tão a sério que se recusa a iniciar se você armazenar uma senha sem indicar o algoritmo utilizado. Esta lição mostra como conectar seus próprios usuários, qual encoder escolher e como tratar as falhas sem entregar a um atacante a lista das suas contas válidas.
Você também verá as duas peças que faltam na maioria dos tutoriais: o que exatamente o DaoAuthenticationProvider faz entre o formulário e o seu banco de dados, e por que uma mensagem de erro precisa demais basta para enumerar seus usuários.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão