Jump to content

Clients importés et mot de passes


Recommended Posts

Bonjour à tous,

 

Je viens vers vous concernant un problème assez particulier mais qui, j'en suis sur, n'est pas unique en son genre.

 

En effet, un client ayant eu une boutique sur une solution tierce à décidé de passé sous PrestaShop et d'importer son listing de client en veillant bien à rendre le mot de passe comme souhaite: la clé du cookie + mot de passe, le tout crypté.

 

Autant les nouveaux clients peuvent s'inscrire et se connecter, autant les anciens clients ne savent ni se connecter ni même renouveler leur mot de passe car ils ne reçoivent jamais le mail correspondant.

 

Une tentative de connexion à la place d'un ancien client m'est possible. J'en viens à déduire qu'il s'agit d'un problème de cookies sachant que le site n'a pas changé de domaine et que n'ayant jamais visité celui-ci auparavant, je n'ai pas de soucis pour ma part.

 

Une idée du problème, de comment le résoudre ? ;-)

 

Détails techniques

Version de PrestaShop: 1.5.2.0

Link to comment
Share on other sites

Déjà vérifie que les mots de passe en base sont les bons et qu'il n'y a pas eu d'erreur lors de l'import.

 

Demande lui le vrai MDP d'un client A, et vérifie que le hash stocké en base à son nom soit bien égal à md5(COOKIE_KEY + mdp) (et prend bien le COOKIE_KEY de son fichier settings en prod histoire d'être sur que c'est bien celui qui est utilisé).

Link to comment
Share on other sites

Ceci a en effet été testé et j'ai pu constater que l'encodage avait été bien réalisé.

 

De plus, quand je tente de me connecter moi, ça fonctionne de suite. Et je reçois bien le mail de renouvellement, même sur un compte client importé.

Link to comment
Share on other sites

Si les nouveaux clients peuvent s'inscrire et se connecter, c'est qu'il n'y a pas de "problème" et on peut en déduire que les mots de passe des clients importés ne sont pas bien cryptés.

 

Si les mots de passe étaient cryptés dans son ancien système, c'est difficile d'imaginer qu'il a pu les décoder avant l'import. (Sauf si les dev n'avaient pas compris le principe du cryptage à sens unique)

 

Pour l'import des clients dans PS, il faut que les mot de passe soient en clairs car ils sont cryptés à l'import. Je pense que le problème est là : Si les mots de passe ont été importés pré-crypté, PS les a re-crypté et plus rien de correspond.

 

Solutions :

 - Si les mots de passe sont en clair dans l'ancien site : réimporter les clients en laissant les mdp en clair.

 - Si les mots de passe sont cryptés mais décryptables : solution précédente.

 - Si les mots de passe sont cryptés et non décryptable : il faut mettre en place un système de vérification, récupération et de mise à jour du mot de passe comme l'ont fait l'équipe PS pour le module "importerosc", méthode hookbeforeAuthentication($params).

Le principe est que les anciens mots de passe cryptés sont importés dans la table customer et lors de l'authentification, sont vérifiés et mise à jour avec le cryptage PS. Du coup, c'est en se connectant qu'un client règle le problème de son compte de façon transparente. (Je ne sais pas si ça va t'aider mais ce que j'explique là fonctionne parfaitement pour importer d'osCommerce)

  • Like 1
Link to comment
Share on other sites

Je suis entièrement d'accord et je vois bien le principe.

 

Le hic, c'est que - en effet - les mots de passes importés n'étaient pas cryptés et l'ont donc été au moment de la migration. Ils ont pris la peine de conserver les anciens mots de passe. Ce qui nous est pratique, finalement.

 

J'ai donc pris le temps de faire une analyse de ceux-ci et de ceux cryptés, c'est bon.

 

De même, point étrange: lorsque l'on modifie le mot de passe du client (en reprenant le même)..., la connexion peut s'effectuer.

 

Le hic, c'est qu'on ne sait jamais trop quel client à le soucis. Et lorsqu'il sonne/envoie un mail pour le signaler, on ne va pas le faire trop attendre afin qu'il puisse commander.

 

C'est pourquoi j'ai pensé à un moment donné aux cookies. Et au domaine, éventuellement. ;-)

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

 

J'ai un souci similaire.

J'ai remonté mes clients en encodant le mot de passe avec la fonction md5.

J'ai même vérifié sur un site que le mot de passe encodé était correct.

http://www.authsecu.com/decrypter-dechiffrer-cracker-hash-md5/script-hash-md5.php

Quand je suis sur l'appli et que je saisie le mot de passe du client, il me fait une erreur.

Mon problème vient il de la variable secure_key ?

J'ai regardé les posts sur ça.

J'ai fait ça :

UPDATE ps_customer SET  secure_key = MD5(passwd) where (secure_key ='-1' or secure_key is NULL)



 

Quelqu'un peut-il m'aider svp ?

 

Merci de votre bonté.

Valérie

Link to comment
Share on other sites

Il y a de fortes chances qu'effectivement le secure key ne correspondent pas au hashage du mot de passe.

Les deux sont en intime relation, puisque c'est le secure key qui va permettre de décoder le mot de passe (pour ne pas que n'importe qui puisse, via un utilitaire, décodé à la volée tous les mots de passe du site).

Je pense qu'il faut réencoder tous les mot de passe le bon secure key et cela devrais rentrer dans l'ordre.

Link to comment
Share on other sites

  • 2 weeks later...

Il y a de fortes chances qu'effectivement le secure key ne correspondent pas au hashage du mot de passe.

Les deux sont en intime relation, puisque c'est le secure key qui va permettre de décoder le mot de passe (pour ne pas que n'importe qui puisse, via un utilitaire, décodé à la volée tous les mots de passe du site).

Je pense qu'il faut réencoder tous les mot de passe le bon secure key et cela devrais rentrer dans l'ordre.

Bonjour,

 

Merci à toi de ta réponse Jean-François.

J'ai choisi une solution plus simple et qui fonctionne parfaitement celle d'importer mes clients via l'admin de Prestashop et cela fonctionne nickel.

Je vais mettre en résolu.

Oups, ce n'est pas moi qui est crée le post donc je ne mettrais pas en résolu.

 

Bonne journée,

Valérie

Edited by valou1976 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...