New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connexion KO avec mot de passe complexe #46

Closed
kvnco opened this Issue Aug 26, 2013 · 8 comments

Comments

Projects
None yet
2 participants
@kvnco
Copy link

kvnco commented Aug 26, 2013

Bonjour,

Tout d'abord merci pour ce joli projet.

Je souhaite remonter un bug qui rend la connexion impossible avec un mot de passe complexe (j'entends par complexe : mon pwd contient des caractères alphanum, des espaces et certains signes de ponctuation). J'obtiens alors un message indiquant "Login failed".
J'utilise le mode d'authentification "basic". Dans les logs du serveurs, je peux voir que la chaîne de caractère générée est incorrecte.

À dispo, si besoin de plus d'infos !

@kvnco

This comment has been minimized.

Copy link

kvnco commented Aug 26, 2013

Après quelques tests, c'est la gestion des espaces qui pose problème…

@barbogogo

This comment has been minimized.

Copy link
Owner

barbogogo commented Aug 26, 2013

Bonjour.
Merci pour ces informations.
Nous avons en effet détecté ce type de problème avec le caractère espace et &. Toutefois, ces caractères étant peu utilisés pour des mots de passe nous en sommes resté là.
Il est cependant possible que la liste de caractères "interdits" soit plus longue.
C'est néanmoins un sujet important sur lequel je vais me pencher très rapidement 😄

@kvnco

This comment has been minimized.

Copy link

kvnco commented Aug 26, 2013

Hello,

J'ai dit une bêtises (oups !) l'espace ne pose pas de problème c'est une quote simple qui me coinçait.

Le problème vient des variables passées en paramètre à Leed qui sont nettoyées
Leed / Functions.class.php (23)
htmlspecialchars($var, ENT_QUOTES, "UTF-8");
Appelé depuis
Leed / common.php (60)
$_ = array();
foreach($POST as $key=>$val){
$
[$key]=Functions::secure($val, 2); // on ne veut pas d'addslashes
}
foreach($GET as $key=>$val){
$
[$key]=Functions::secure($val, 2); // on ne veut pas d'addslashes
}

Voici la doc (et donc les échappements qui sont fait) : http://fr2.php.net/manual/en/function.htmlspecialchars.php

La correction ne doit plus être compliquée ;)

@barbogogo

This comment has been minimized.

Copy link
Owner

barbogogo commented Aug 26, 2013

Salut,

Merci pour toutes ces informations.
J'ai un train de retard, désolé.
En réalité, le mot de passe est haché par l'application avant d'etre envoyé à l'api. L'api reçoit normalement une chaine alphanumérique sans espace ni signe de ponctuation.
Je vais regarder si l'encodage fait au niveau de la classe Utils appelée par la classe ApiConnection est correct.

Est-ce que tu as essayé en mode Digest?

@ghost ghost assigned barbogogo Aug 26, 2013

@kvnco

This comment has been minimized.

Copy link

kvnco commented Aug 26, 2013

Re-bonjour,

Je n'ai peut-être pas été assez clair, je vais reprendre…
Sous Leed, lorsque le pwd est enregistré, celui-ci est nettoyé (les caractères qui-vont-bien sont remplacés, voir la doc à ce sujet) par la fonction PHP htmlspecialchars(). Ensuite, celui-ci est chiffré en SHA1 et envoyé en base. Si j'ai bien compris, c'est cette chaîne qui est récupérée par l'API.

La solution est donc que l'application effectue ces mêmes échappements avant d'effectuer le chiffrement SHA1 et d'envoyer la requête. Je suis d'ailleurs parvenu à me connecter, sans modifier mon mot de passe, mais en effectuant le remplacement moi-même dans le mot de passe saisi.

Voilà pourquoi je pense que l'idée est d'effectuer ces remplacement dans l'appli…

@barbogogo

This comment has been minimized.

Copy link
Owner

barbogogo commented Aug 27, 2013

Bonjour,

En effet, je n'avais pas compris, mais au final, nous disons la même chose ;-)

Merci pour ces précisions.

@kvnco

This comment has been minimized.

Copy link

kvnco commented Aug 27, 2013

Oui :)

barbogogo added a commit that referenced this issue Aug 27, 2013

@barbogogo

This comment has been minimized.

Copy link
Owner

barbogogo commented Aug 27, 2013

Encore merci
Mise à jour de LeedReader : http://www.barbogogo.fr/leedreader-v1-4-3-est-pret-pour-les-tests/

@barbogogo barbogogo closed this Aug 27, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment