Page 1 sur 1
[Corrigé 3.1.40] User edit password - V 3.1.37
Posté : mar. 19 mars 2019 10:28
par kl3sk
Lors de la modification d'un utilisateur, lors de sa récupération on récupère sont password hashé et il est réinjecter dans le formulaire.
Ceci n'as aucun sens car par inadvertance on enregistrer un password déjà hashé pour le rehasher.
De plus il n'y as pas de double vérification des mots de passe.
Je propose ces changement dans le fichier suivant
- user.7z
- Fichier /admin/user.php
- (11.8 Kio) Téléchargé 393 fois
Nota: Je ne l'ai pas fait ici mais il serait bon d'ajouter un
sur les champ mot de passe. En effet Chrome pour ne pas le citer a tendance a remplir les formulaire un peu trop facilement lors que l'on a des mots de passe enregistré. Ce qu'il fait que l'on risque de changer le mot de passe par inadvertance.
Nota2: Avec la double vérification, le
Nota1 ne devint plus vraiment véridique.
Re: User edit password - V 3.1.37
Posté : mar. 19 mars 2019 11:38
par Flox
Bonjour,
lors de la modification d'un utilisateur le mot de passe hashé sans salt est récupéré afin d'éviter une nouvelle saisie de ce dernier lors de la modification de la fiche utilisateur.
Le mot de passe hashé ne peut être hashé une nouvelle fois car un contrôle existe à ce niveau.
Un mot de passe est hashé uniquement si le champ à été modifié.
> Sans cette récupération la modification des autres onglets de la fiche utilisateur est impossible.
Concernant la confirmation du mot de passe il s'agit d'une bonne idée, je vais intégré vos modifications pour les prochaines versions.
Concernant les champs identifiants et mot de passe il sont tous les deux déja avec l'attribut autocomplete à off lors de la création d'un utilisateur:
Re: User edit password - V 3.1.37
Posté : mar. 19 mars 2019 11:57
par kl3sk
Effectivement j'ai vu le principe md5 + salt utilisé. Bien que "salté" le MD5 reste déprécié. Ceci est un autre débat.
Par contre je trouve contre intuitif de préremplir un mot de passe. Nulle par cette fonctionnalité est en place sur les sites ou autres.
Example: ce forum
- phpBB-example.png (28.86 Kio) Vu 8172 fois
Un mot de passe vide signifie pas de changement, d'où le double intérêt du double (ça vais deux foi double oui
) champs mot de passe.
Edit: Effectivement j'avais oublié que le autocomplete étant présent. Méaculpa
Re: User edit password - V 3.1.37
Posté : mar. 19 mars 2019 20:05
par Flox
Bonjour,
une modification sera disponible dans la version 3.1.40 permettant :
- de gérer la confirmation de mot de passe sur le formulaire de création et de modification d'utilisateur
- de remplacer le mode de hashage md5+salt par la fonction "password_hash" de php
- de supprimer l’auto complétion des champs identifiant et mot de passe avec chrome (autocomplete="new-password" )
cdt
Re: [Corrigé 3.1.40] User edit password - V 3.1.37
Posté : mer. 20 mars 2019 09:23
par kl3sk
Password Hash semble une meilleur alternative effectivement.
Je conseillerais même de vérifier la version de PHP et utiliser Argon2i si c'est > PHP7.2
http://php.net/manual/fr/password.constants.php
https://crypto.stackexchange.com/a/49969
Re: [Corrigé 3.1.40] User edit password - V 3.1.37
Posté : mer. 20 mars 2019 09:33
par Flox
Bonjour,
L'option choisie pour la fonction "
password_hash" est "PASSWORD_DEFAULT", cette dernière semble intéressante car l'algo est automatiquement mis à jour en fonction des MAJ PHP.
cdt
Re: [Corrigé 3.1.40] User edit password - V 3.1.37
Posté : mer. 20 mars 2019 10:39
par kl3sk
La doc PHP n'est pas hyper claire sur ce point. C'est pour cela que je doute sur le fait cette constante suive vraiment les MAJ.
PASSWORD_DEFAULT (entier)
L'algorithme par défaut à utiliser pour le hachage si aucun algorithme n'est fourni. Cette valeur peut changer dans les futures versions de PHP où il est probable que de meilleurs algorithmes de hachage soient supportés.
Cette valeur peut (et va certainement) changer dans le temps. Toutefois, vous devez être prudent sur le fait que la longueur du résultat peut changer aussi. Aussi, si vous utilisez la constante PASSWORD_DEFAULT, vous devriez stocker le hache résultant dans un champ supportant au moins 60 caractères (255 caractères serait un excellent choix).
Valeur pour cette constante :
PHP 5.5.0 - PASSWORD_BCRYPT
Certe il est noté
PHP 5.5.0 - PASSWORD_BCRYPT mais pas d'info pour PHP 7.x