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

P3terP3ter Responsable de PluXml
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 par e-mail un lien contenant un token et qui permet de changer son mot de passe. Cela implique que votre hébergeur soit paramétré de tel sorte que l'envoi de mail soit possible.

Télécharger PluXml 5.8 (branche develop)

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).

Réponses

  • +1

    Je teste un peu plus tard

    Notre temps est la seule monnaie vraie ;)

    Site - Dépôt - MyShop

  • bazooka07bazooka07 Membres
    13 mars modifié
    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. ]:D

    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" 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.
  • cpalocpalo Membres
    Bonjour,

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

    Cordialement
  • cpalocpalo Membres
    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
  • bazooka07bazooka07 Membres
    Oups, petit oubli :

    Dans le panneau de config de chaque utilsateur, il faudrait ajouter un bouton pour tester son adresse mail.
  • 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.
  • P3terP3ter Responsable de PluXml
    Jerry Wham a écrit:
    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.

    Je suis d'accord avec toi. Dans cette première version c'est un nouveau mot de passe qui est envoyé par mail. Mais j'aimerais à terme envoyer un lien permettant de créer un nouveau mot de passe.
  • P3terP3ter Responsable de PluXml

    Hello,

    Peut-être un problème avec ton hébergement. PluXml vérifie seulement si la fonction mail de php est disponible. Si tu ne reçois pas le mail, c'est soit un problème avec l'adresse mail, soit le serveur mail qui n’envoie pas le courrier. Par exemple Exim4, que j'utilise en local et sur mon blog.

    Par ailleurs, dans la dernière version sur github, j'ai rendu obligatoire, la saisie d'un mail à la création d'un profil, mais également à l'installation de PluXml (création de l'administrateur) : https://github.com/pluxml/PluXml/tree/feature/lostpassword

  • P3terP3ter Responsable de PluXml
    10 juin modifié

    Bonjour,

    J'aurais besoin d'un coup de main, pour vérifier et compléter les manques de traduction, de cette nouvelle fonctionnalité, dans les différentes langues supportées par PluXml.

    Si vous souhaitez participer, j'ai initié un framapad : https://annuel.framapad.org/p/pluxml-lost-password

    Vous pouvez également poster directement sur le forum vos traductions, ou me les envoyer par e-mail.

  • P3terP3ter Responsable de PluXml

    Bonjour,

    La version de développement PluXml 5.8 (branche develop) a été mise à jour. Désormais, la fonctionnalité "mot de passe oublié", permet l'envoi d'un e-mail qui contient un lien contenant un token et qui permet de changer soit même son mot de passe.

    A télécharger ici : https://github.com/pluxml/PluXml/tree/develop

  • SudwebdesignSudwebdesign Membres
    4 juil. modifié

    Jusque ici tout va bien (sur mon serveur local)

    Il y a une disparité de la taille des images (icones) de la page des plugins "core/admin/parametres_plugins.php"

    elles ont un max-width: initial !important; alors que ds la v5.7 il est fixé a 48px, ce qui permet aux images "icone.png" trops grandes d'éviter de rendre la colonne trop large.

    theme.css v5.7

    #plugins-table img, #medias-table img {
       max-width: 48px;
       padding-top: 7px;
    }
    

    theme.css v5.8

    #plugins-table img, #medias-table img {
       max-width: initial !important;
       vertical-align: bottom;
    }
    


    Peut-être est-ce voulu mais si l'image d’icône est très très grande (genre 800 ou 1024px de large) on ne voit plus les colonnes suivantes ...

    Pour voir l'effet, il suffit juste de changer l'image d'un plugin avec une grande largeur

    Notre temps est la seule monnaie vraie ;)

    Site - Dépôt - MyShop

  • P3terP3ter Responsable de PluXml

    Merci beaucoup pour ce retour.

    J'ai remis les règles CSS de la version 5.7. Elles avaient été changés par ce commit : https://github.com/pluxml/PluXml/commit/60e20595d0eeacb730c2a23cb94f9eb4a92cf528#diff-9a7716ce9c6ef7c0979684f159357200

  • SudwebdesignSudwebdesign Membres
    6 juil. modifié

    @P3ter

    super on évite une régression,

    Au passage superbe idée de déplacer en haut le lors de la modif d'un article


    Mais l'ancre du lien "Éditer" mène au champ #articleLink alors qu'il est non modifiable, il serai préférable que ce lien envois l'internaute sur le champ #id_url qui lui l'est ;)


    [édit] *réalisé grâce au bon plugin de @bazooka07 lesFables avec une légère Mise À Jour

    Notre temps est la seule monnaie vraie ;)

    Site - Dépôt - MyShop

  • SudwebdesignSudwebdesign Membres
    6 juil. modifié

    Je ne sais pas si l'on peu dire que ce soit un bogue car ça fait longtemps que c'est ainsi :)

    Voila, lors du choix de l'ordre des articles ds les paramètres d'affichages, cela joue aussi sur l'affichage de la page tag.php du thème graphique. Par exemple, si le mode alphabétique est choisit, les deux sont ds cet ordre.


    Est-il possible qu'il y est l'option tri des articles (Mot Clé) ds les paramètres d'affichage de la prochaine mouture?

    Et/ou alors comment Faire pour changer l'ordre des articles de la page tag

    Cela servirai @SieurVLD en toutes probabilités et bien a d'autres 🤩


    [édit] @P3ter pour allez plus loin (une idée)

    Cela pourrait-être ds le moteur au préchauffage comme pour les catégories

    	public function prechauffage() {
    ···
               elseif($this->get AND preg_match('/^tag\/([a-z0-9-]+)/',$this->get,$capture)) {
    ···
               $this->tri = $this->aConf['triTag']; # Recuperation du tri des articles en mode tag
    

    et le bon html ds parametres_affichage.php suffirait-il?

    Notre temps est la seule monnaie vraie ;)

    Site - Dépôt - MyShop

  • P3terP3ter Responsable de PluXml

    J'ai modifier l'ancre sur le lien "Editer", je suis d'accord avec toi. J'ai également supprimé le champ #articleLink qui peut porter à confusion avec le nouveau champ en haut de page, et le champ URL dans la sidebar.

    Concernant le tri des articles sur la page des tag.php, j'ai créé une issue sur Github : https://github.com/pluxml/PluXml/issues/327. Je vais voir comment je peux l'intégrer. Je pense que je vais partir sur ton idée d'ajouter une option "tri des articles (Mot Clé)".

  • cpalocpalo Membres

    Entre parenthèses il y a (éditer) ne pourrrait-on pas l'enlever car il porte à confusion puisqu'inutile à moins qu'il offre une possibilité. Mais dans ce cas j'aimerai bien la connaître.

    Ne pourrait-on pas laisser le chapo affiché par défaut. Car pour rédacteurs "débutants" ils oublient très fréquemment de le remplir?

    A moins de passer par un des plugins champPlus ou autre, ou de passer en mode source dans ckeditor, est-ce qu'on pourrait avoir l'équivalent d'un chapo dans les pages statiques ( mais qui n'aurait pas la même fonction que dans les articles). Car souvent dans les pages statiques on peut avoir un premier paragraphe de présentation et mis en page différemment.

    Merci pour tout le travail fait... la version 5.8 en développement me paraît bien prometteuse.

    Cordialement

Connectez-vous ou Inscrivez-vous pour répondre.