[RESOLU] Password hash

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Password hash

Re: Password hash

par Figuedi » 10 avr. 2021, 15:13

Ah oui nickel pas bête la soluce 2.

Merci beaucoup

Re: Password hash

par @rthur » 10 avr. 2021, 08:18

2 possibilités :
1) Soit tu forces effectivement le changement de mot de passe de tous tes utilisateurs
2) Soit tu t'accordes une période de transition pendant laquelle tu mets à jour le hash discrètement au fur et à mesure que les utilisateurs s'identifient.

Voici le principe :
- D'abord, tu augmentes la taille du champ password de ta base de données car le SHA256 prend plus de caractères que le md5
- Ensuite à chaque fois qu'un utilisateur essaye de se connecter :
.......... Tu vérifies si le mot de passe saisi est correct en sha256, si oui alors tu le connectes
.......... Si non, alors tu vérifies en md5(), s’il est correct alors tu réencodes le mdp saisi en sha256 et tu updates ta bdd
.......... Si il n'est pas correct en sha256() ni en md5(), c'est que le mdp est faux.

:arrow: Ainsi à chaque fois qu'un utilisateur va se connecter ça va passer son mdp en sha256() sans qu'il s'en rende compte.



Quelques mois plus tard tu regardes combien d'utilisateurs ont encore un mdp dans ta base avec un hash de 32 caractères (qui correspond donc au md5) et tu peux rebasculer sur la possibilité 1 de vider leur mot de passe et de forcer uniquement ceux-là (qui sont des utilisateurs inactifs) à changer leur mot de passe.
Ou alors si tu veux éviter de les solliciter par e-mail, tu supprimes leur mot de passe de ta base, et quand ils essayent de se connecter à ton site, tu leur affiches un message comme quoi ils doivent réinitialiser leur mot de passe et tu leur envoies un mail de réinitialisation de mot de passe.

Password hash

par Figuedi » 09 avr. 2021, 21:43

Suite à une remarque forte à propros d'@rthur, je voudrais changer le codage des Password de malheureux utilisateurs de mon site.

J'utilisais ;
$mdp = hash('sha256',$_POST['mdp']);
Et je vais donc passer à :
$mdp=password_hash($_POST['mdp'], PASSWORD_DEFAULT);
Seul bémol y a t il un moyen autre que flinguer tous les mots de passe des utilisateurs pour qu'ils le recréent
Le seul truc qui me vient à l'esprit mettre deux nouveaux champs dans la base SQL passwordChange et NewPassword
et de faire un control lors du login si password change false ancien password sinon nouveau password?
Est ce qu'il y aurait pas une fonction magique qui m'updaterait les passwords ?

Et d'après ce que j'ai lu il ne faut pas forcer un Salt mais utiliser le Password_default permet d'utiliser un salt dynamique ou un truc comme ça. Est ce que c'est bien ça ou comme d'hab la lecture en diagonale m'a fait louper des articles ?

Merci pour vos retours