PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 12/03/2019 23:38:12

P3ter
Responsable de PluXml
Lieu : Ile De France
Inscription : 17/10/2011
Messages : 321
Site Web

[PluXml 5.8] Récupération de mot de passe

Bonjour à tous,

Je vous propose de tester et de me faire vos retours sur une nouvelle fonctionnalité de la prochaine version de PluXml : la récupération de mot de passe.

4jqkWI5T4W81.png

La solution que j'ai implémenté utilise la fonction mail() de php pour envoyer un nouveau mot de passe à l'utilisateur. Ça implique que votre hébergeur autorise et soit paramétré de tel sorte que l'envoi de mail soit possible.

Pour les besoins du test, j'ai mis à disposition une version 5.8 de PluXml sur Github.

Télécharger PluXml 5.8 alpha 1 (feature/lostpassword)

Le mail est construit à partir d'un template visible ici. Une option permet d'activer ou de désactiver cette fonctionnalité, depuis l'écran "Configuration avancée" (activé par défaut).

Il s'agit là d'un premier lot. Il y a encore plein d'améliorations possibles pour cette fonctionnalité.


Responsable de PluXml
PluXml sur Twitter : @pluxml
Mon Twitter : @p3terfr - Mon blog : p3ter.fr

Hors ligne

#2 13/03/2019 17:24:10

Sudwebdesign
Membre
Lieu : Pyrénées orientales
Inscription : 15/02/2011
Messages : 287
Site Web

Re : [PluXml 5.8] Récupération de mot de passe

+1

Je teste un peu plus tard


Le temps est notre argent, investissons le bien smile
Mon dépôt de plugins

Hors ligne

#3 14/03/2019 00:21:50

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 250
Site Web

Re : [PluXml 5.8] Récupération de mot de passe

Tout d'abord, même si cela n'a rien à voir avec le sujet, j'ai la désagréable sensation de lire un message d'erreur dans les logs de Apache :

[== tail -f /var/log/apache/test-error.log  ==]
PHP Deprecated:  Function create_function() is deprecated in /home/www/test/PluXml-2019/core/admin/medias.php on line 93, referer: https://test.lan/PluXml-2019/core/admin/

Je fais mes tests sous "Ubuntu 18.04.2 LTS" et c'est donc PHP 7.2. Et pas de chance la fonction create_function() est obsolète maintenant :
http://php.net/manual/fr/function.create-function.php
Donc à bannir de façon définitive
Fin de l'aparté.

L'idée est généreuse et pallie à un manque de PluXml que j'ai remplacé depuis longtemps avec mon vieux plugin lostpassword publié en 2014.

AMHA, à l'installation, il faudrait rendre obligatoire l'adresse mail pour l'administrateur. Au moins pour lui envoyer des messages d'alerte.

Pour trouver une adresse mail ou un login, les essais sont quasi illimités : un grand compteur, pas de temps de réponse qui s'allonge. Donc, vive l'attaque par force brute.

Pour ceux qui ont la patience de faire 100 tentatives en 3 minutes et se retrouvent bannis. Pas de souci : effacer tous les cookies de votre site, hyper facile avec Firefox, et c'est "same player shoots again" comme en haut des flippers.  devil

Pour éviter cela, c'est sur le serveur qu'il faut enregistrer le compteur pour une adresse IP donnée et pas demander au méchant qui toque à la porte de tenir à jour le compteur d'essais.

Mon plugin réclame à la fois un login et une adresse mail valide sinon c'est erreur et cela limite un peu les attaques.

Pour éviter les aller-retours entre navigateur et serveur, il utilise une checkbox pour afficher un input type="mail" et désactiver la demande de mot de passe.

Il faudrait penser à utiliser les fonctions de filtrage des $_POST de PHP :
http://php.net/manual/fr/function.filter-input.php
J'utilise systématiquement cela dans mes plugins. Cela augmente la sécurité.
"!empty($_GET['p']" se remplace par "filter_has_var(INPUT_GET, 'p')"
Vérifier qu'on poste une adresse mail valide :
filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)
Tester si on a posté une expression booléenne à vrai ( type checkbox ):
filter_input(INPUT_POST, 'lostpassword', FILTER_VALIDATE_BOOLEAN)
La courbe d'apprentissage peut sembler raide pour certains, surtout pour matcher des expressions régulières (je maitrise maintenant), mais cela paye après.

Il serait bienvenue de pouvoir activer le captcha sur le formulaire d'authentification.

Mais cela ne vaut pas la double authentification : plugins kzU2f et kzOtPHP.

Dans config.php et core/lib/class.plx.Admin.php, core/lib/config.php abandonner la fonction define et utiliser des constantes :

[== PHP ==]
<?php const PLX_CONFIG_PATH = 'data/configuration/'; ?>
<?php const PLX_ADMIN =  true; ?>
<?php const PLX_DEBUG =  true; ?>
<?php const PLX_VERSION = '5.8-alpha.1'; ?>
<?php const PLX_ROOT = '../../'; ?>
// Etc, ...

Désolé d'être trop bavard.

Dernière modification par bazooka07 (14/03/2019 00:25:05)

Hors ligne

#4 14/03/2019 07:15:28

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 988

Re : [PluXml 5.8] Récupération de mot de passe

Bonjour,

Je teste ça ce matin.
Mais cela manquait...

Cordialement

Hors ligne

#5 14/03/2019 09:55:54

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 988

Re : [PluXml 5.8] Récupération de mot de passe

Testé avec deux profils ( dont l'administrateur) eet deux adresses mail différentes
Lorsqu'on met le pseudo pour récupérer le mot de passe,

Veuillez saisir votre login ou adresse e-mail pour recevoir un nouveau mot de passe

Je remets le pseudo

Erreur lors du changement de mot de passe

Je saisis l'adrese mail...
a-priori il accepte, mais je ne reçois aucun mail.
D'ailleurs il faudrait rendre obligatoire la saisie d'une adresse mail valide avant de pouvoir enregistrer un profil.
Cordialement

Hors ligne

#6 14/03/2019 20:39:39

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 250
Site Web

Re : [PluXml 5.8] Récupération de mot de passe

Oups, petit oubli :

Dans le panneau de config de chaque utilsateur, il faudrait ajouter un bouton pour tester son adresse mail.

Hors ligne

#7 17/03/2019 14:36:43

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 610
Site Web

Re : [PluXml 5.8] Récupération de mot de passe

C'est un mot de passe qui est envoyé ou un lien pour créer un nouveau mot de passe ?
La différence est importante je pense.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2019 PluXml.org, tous droits réservés