Project

General

Profile

Evolution #4171

Rendre le formulaire d'oubli du mot de passe plus conforme aux conventions de sécurité - avec PATCH -

Added by Gilles VINCENT about 1 year ago. Updated about 2 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
08/24/2018
Due date:
% Done:

0%

Resolution:
fixed

Description

Voici le message de David Prévot sur spip-team

<cite>

Actuellement, si l’adresse n’est pas dans la base de donnée, l’erreur
suivante est servie :

Erreur : l’adresse <> n’est pas enregistrée sur ce site.

Alors que si l’adresse existe, le message suivant est affiché :

Vous allez recevoir un email vous indiquant comment retrouver votre
accès au site.

(L’identifiant est même envoyé en clair dans le courrier électronique.)

Un comportement plus neutre pourrait être, comme on le voit souvent, un
message du genre « Si l’adresse est dans la base de donnée, un message
sera envoyé en indiquant comment retrouver votre accès au site. »

</cite>

Pour répondre à cela, j'ai simplement créé un fichier squelettes/lang/local_fr.php contenant

$GLOBALS[$GLOBALS['idx_lang']] = array(
    'pass_recevoir_mail' => "Si votre email est inscrit sur le site vous allez recevoir un email vous indiquant comment retrouver votre accès au site." 
);

Puis fais en sorte que le formulaire d'oubli (oubli.php) ne retourne jamais d'erreur (hors problème technique de livraison)

25a26,46
>
>       $r = formulaires_oubli_mail($email);
>
>       if (!is_array($r)) {
>               $erreurs['oubli'] = $r;
>       } else {
>               if (!$r[1]) {
>                       $erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => spip_htmlspecialchars($email)));
>               } elseif ($r[1]['statut'] == '5poubelle' or $r[1]['pass'] == '') {
>                       $erreurs['oubli'] = _T('pass_erreur_acces_refuse');
>               }
>       }
>
>       spip_log("Un utilisateur a effectué une demande de mot de passe oublié sur un email inexistant : " . $erreurs['oubli'],'spip');
>
>       if ($erreurs['oubli']) {
>               return _T('pass_recevoir_mail');
>       }
>
>       unset($erreurs['oubli']);
>
72,85d92
<
<       $email = strval(_request('oubli'));
<
<       $r = formulaires_oubli_mail($email);
<
<       if (!is_array($r)) {
<               $erreurs['oubli'] = $r;
<       } else {
<               if (!$r[1]) {
<                       $erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => spip_htmlspecialchars($email)));
<               } elseif ($r[1]['statut'] == '5poubelle' or $r[1]['pass'] == '') {
<                       $erreurs['oubli'] = _T('pass_erreur_acces_refuse');
<               }
<       }

Le test sur l'existence du mail est réalisé désormais juste avant l'envoi.

History

#1 Updated by b b about 1 year ago

  • Target version set to 3.3

À faire sur le trunk et à reporter en 3.2 uniquement car modif de chaîne de langue.

#2 Updated by b b about 1 year ago

  • Status changed from Nouveau to En cours

Peux-tu fournir ton patch au format diff stp ?

Reste aussi à valider ou améliorer le nouvel item de langue.

#3 Updated by erational 👺鬼 8 months ago

Une autre proposition nous a été faite:
"Un email de réinitialisation de mot de passe vous a été envoyé sur votre adresse e-mail si cette dernière est valide. "

Cela me semble plus fluide et plus simple à comprendre que le message initial proposé:
"Si votre email est inscrit sur ce site, vous allez recevoir un email vous indiquant comment retrouver votre accès au site."

#4 Updated by chan kalan 8 months ago

Peut-être éviter de répéter email ?
"Une demande de réinitialisation du mot de passe vous a été envoyée sur votre adresse e-mail si cette dernière est valide."

Sinon, utilise-t-on "courriel" déjà dans SPIP ?

#5 Updated by cedric - 3 months ago

on a toujours pas corrigé ce problème dans la 3.3 ?

#6 Updated by b b 3 months ago

Testé à l'instant et on dirait bien que non.

#9 Updated by b b about 2 months ago

Et le triple oups pour conclure r24368 :p

#10 Updated by b b about 2 months ago

  • Status changed from En cours to Fermé
  • Resolution set to fixed

On ferme :)

Also available in: Atom PDF