[PluXml 5.8] Récupération de mot de passe
Haruka
PluXml Project Manager
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.
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).
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.
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).
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je teste un peu plus tard
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président
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 :
Désolé d'être trop bavard.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je teste ça ce matin.
Mais cela manquait...
Cordialement
Lorsqu'on met le pseudo pour récupérer le mot de passe, Je remets le pseudo 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
Dans le panneau de config de chaque utilsateur, il faudrait ajouter un bouton pour tester son adresse mail.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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.
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
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.
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
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
theme.css v5.8
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, framagit, MyShop, Factux
#mozinor président
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
@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
[exemple*]
Lien de l'article (Éditer) : http://localhost/pluXml-develop.dev/index.php?article222/le-fou-qui-vend-la-sagesse
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, framagit, MyShop, Factux
#mozinor président
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
et le bon html ds parametres_affichage.php suffirait-il?
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président
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é)".
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
Le lien "(éditer)" est une ancre vers le champs "URL" dans la sidebar sur la droite. Je suis d'accord qu'on ne s'en rend pas compte visuellement quand on clic et qu'il reste quelque chose à améliorer ici.
Pour le chapo, je me pose la même question et je réfléchi également à améliorer cette partie (ça intègre les pages statiques). Je reviens vers vous dès que j'aurais un peu plus de concret, mais je ne sais pas encore si ça va être pour la version 5.8.
Je n'ai pas testé cette version mais j'ai regardé un peu le code source et ça me semble plutôt bien. Le seul bémol est la gestion des hashs des mots de passe qui est obsolète.
Je te propose l'utilisation de ma classe de gestion des mots de passe https://framagit.org/jerrywham/passwordtools
Mais elle nécessite l'utilisation de php 5.5+ car elle utilise des fonctions natives de php disponibles que depuis la version 5.5. La version 7.0 est quand même plus sure...
Je te réponds ici car je ne peux plus sur github. D'ailleurs, il serait peut-être bien de migrer le code de pluxml vers une forge libre (framagit par exemple) en conservant une copie sur github. On ne sait jamais ce qu'il peut arriver depuis que Micro$oft a acheté cette dernière.
Merci pour ce retour Jerry.
Je me suis effectivement basé sur les méthodes de hash déjà utilisées dans PluXml 5.7, mais qui sont effectivement obsolètes. Je pense faire quelques changements pour utiliser mcrypt, un peu comme dans ta class passwordtools. Merci pour le partage, je vais regarder ça de près.
Concernant Github, je me suis déjà posé la question de mettre à disposition les sources de PluXml sur une instance Gitlab, tel que celle de Framasoft, mais sais-tu si il est possible de synchroniser automatiquement les deux plateformes ? Je vois bien comment pusher sur les deux repos à partir du même workspace, mais ce n'est pas idéal.
Pour le mirroring, voici un petit tuto https://docs.gitlab.com/ee/workflow/repository_mirroring.html#setting-up-a-push-mirror-from-gitlab-to-github
Bonjour,
J'ai complété la récupération de mot de passe, en ajoutant à PluXml la possibilité d'envoyer des mails au travers d'un serveur SMTP. Pour cela, j'ai intégré la fameuse librairie PhpMailer dans une nouvelle méthode : plxUtils::sendMailPhpMailer(). Si l'envoi de mail par SMTP est désactivé PluXml utilisera le serveur mail paramétré localement sur votre serveur (comme le faisait déjà plxUtils::sendMail()).
Vous trouverez dans l'administration -> configuration avancée, de nouveaux champs permettant de configurer l'envoie de mail par un serveur SMTP.
L'affichage des boutons radio est réalisé à partir d'une nouvelle méthode : plxUtils::printInputRadio().
Comme d'habitude, c'est disponible sur la branche develop : https://github.com/pluxml/PluXml/tree/develop