Pour les mots de passe, une référence solide c'est l'
OWASP Application Security Verification Standard.
En résumé :
- Longueur minimum de 8 caractères (trop faible sinon).
- Longueur maximum de 128 caractères (attaque DoS possible sinon).
- Ne pas altérer la valeur saisie par l'utilisateur lorsqu'il la soumet (sauf éventuellement les espaces consécutifs).
- Autoriser TOUS les caractères unicode affichables (émojis inclus).
- N'imposer AUCUNE règle de construction du mot de passe basée sur la présence ou l'absence de certains caractères.
- Les utilisateurs doivent pouvoir modifier leur mot de passe, et l'opération requiert de saisir l'ancien.
- Autoriser l'action de collage dans le champ mot de passe.
- Ajouter un bouton qui permet à l'utilisateur de visualiser temporairement la valeur saisie.
- Ne PAS imposer de changer son mot de passe périodiquement.
- Ne PAS stocker l'historique des anciens mots de passe de l'utilisateur dans l'application.
- Ajouter un outil de vérification de la force du mot de passe à la saisie (
une excellente librairie que j'utilise pour le boulot).
De manière générale, le document décrit aussi plein d'autres bonnes règles de sécurité.