
maxlength=20 no campo de senha impede login no Vanguard
O autor relata que, por cerca de um ano, não conseguiu entrar na conta do Vanguard pelo navegador, mesmo redefinindo a senha cerca de três vezes. Ele contornava o problema lendo um QR code com o aplicativo do Vanguard no celular, e só decidiu investigar a causa depois.
A causa identificada
Segundo o autor, o formulário de redefinição de senha do Vanguard usa um campo <input type="password"> com maxlength="20". Ele usa o 1Password e gera senhas mais longas que 20 caracteres. Ao colar uma senha de 26 caracteres no campo de redefinição, o navegador (Chrome) aceita apenas os 20 primeiros. Como o campo de confirmação recebe o mesmo texto truncado, a senha é salva com 20 caracteres.
Por que o login falha
No formulário de login, o campo de senha não tem o limite de 20 caracteres. Por isso, ao colar a senha completa, o sistema recebe 26 caracteres, diferentes dos 20 salvos na redefinição, e informa que a senha está incorreta. O autor descreve a confusão de ter acabado de redefinir a senha.
Conclusão do autor
Para o autor, o exemplo mostra que o atributo maxlength não deveria ser usado em campos de senha. Ele defende que a validação do tamanho seja feita com JavaScript ou no backend, já que essas camadas processam o texto exatamente como o usuário o enviou, sem um corte involuntário.
O texto não traz resposta da Vanguard nem confirmação técnica independente sobre o comportamento do formulário. As afirmações sobre o funcionamento do site são as observações do próprio autor.