Na verdade, escrever regras de senha por si só é uma burrice.
O que todo bom formulario de cadastro de senha deve ter é um qualitativo de senha, aquele famoso "senha fraca, media ou forte".
jamais proibir qualquer caracter ou restringir tamanho
Na verdade, escrever regras de senha por si só é uma burrice.
O que todo bom formulario de cadastro de senha deve ter é um qualitativo de senha, aquele famoso "senha fraca, media ou forte".
jamais proibir qualquer caracter ou restringir tamanho
O tamanho máximo até faz sentido se você estiver usando Bcrypt,
bcrypt has a maximum length input length of 72 bytes for most implementations. To protect against this issue, a maximum password length of 72 bytes (or less if the implementation in use has smaller limits) should be enforced when using bcrypt.
É o que fazemos aqui no TabNews:
[edit]
Fora isso, se você não definir um tamanho máximo, vai virar vetor de ataque.
[edit2]
Um comportamento interessante do bcrypt
é que se você mandar uma string que ultrapassa o valor máximo, ele não nega. Ele irá descartar os caracteres restantes. Então se você colocar uma variação ao final desta string que ultrapassou o limite, tanto faz.
O tamanho máximo até faz sentido se você estiver usando Bcrypt
Alguma alternativa ao Bcrypt?
Não da pra fazer com o próprio node e seu módulo node:crypto?
Acho que tem várias alternativas, mas o Bcrypt é uma ótima escolha, ainda mais com Salt Rounds alto.
Adendo: obrigar 1 caracter maiusculo, 1 especial e 1 numero só facilita ataques de força bruta.
além disso, a força da senha é menos importante do que um throttling bem implementado.
é só ter como exemplo bancos, que na sua maioria usam senhas "fracas" (6 digitos), mas que não perdoam caso você erre 3x.
tem alguém mais interessado em segurança do que um banco? rs
Mas ai tem um detalhe, se a houver um ataque ao bd e copiarem, tentarão força bruta e pequenas senhas serão fácilmente descobertas.
Ainda mais se for como a galera anda fazendo com placa de vídeo, esses dias eu vi que uma senha com 8 caracteres alfanuméricos é um tempo ridículo para força bruta com gpu, de tão pouco tempo que é.