Techniquement, un utilisateur n’utilise pas le hachage de mot de passe hérité.
Lorsqu’un utilisateur se connecte pour la première fois après une migration et que le mot de passe ne correspond pas au mot de passe Discourse (qui sera initialement une chaîne aléatoire de caractères), le plugin effectue son travail.
- il vérifie si le mot de passe saisi correspond aux champs personnalisés
import_passen utilisant toutes les méthodes de hachage qu’il connaît - s’il trouve une correspondance, il enregistre le mot de passe pour l’utilisateur, puis supprime le champ personnalisé
import_pass.
Ainsi, après quelques années, seuls les utilisateurs qui n’ont pas « utilisé » le mot de passe migré pour se connecter auront encore un champ personnalisé import_pass.
a) ils ne se sont jamais connectés (vous pouvez vérifier cela avec la date de dernière connexion)
b) ils n’ont pas utilisé le mot de passe migré mais se sont connectés via e-mail, une autre méthode d’authentification, ou ils ont réinitialisé leur mot de passe
Je viens de réaliser que la situation b peut introduire un problème de sécurité. Si un utilisateur ne se souvient pas de son mot de passe et le change, ou s’il utilise une autre méthode d’authentification, le hachage de mot de passe migré restera présent et pourra encore être utilisé à côté du nouveau mot de passe. Je viens de publier une mise à jour du plugin pour qu’il supprime le champ personnalisé import_pass à chaque connexion réussie.
Désormais, le champ personnalisé import_pass ne sera présent que pour les utilisateurs qui ne se sont jamais connectés.