Pour sécuriser votre site WordPress des hackeurs, une bonne technique consiste à empêcher le changement de mot de passe depuis un compte utilisateur ainsi que par mail. En utilisant ce hack, seuls les administrateurs connectés pourront effectuer cette manipulation.
Mise à jour : Julio de BoiteAWeb m’a proposé une version modifié pour améliorer la sécurité du script. La voici et merci à lui !
<?php /* * Plugin Name: Password Reset Removed * Description: Removes the ability for non admin users to change/reset their passwords. * Version: 1.1 * Author: Derek Herman ; Modified by Juliobox (boiteaweb.fr) * Author URI: http://valendesigns.com */ add_filter( 'show_password_fields', 'baw_prr_i_am_admin' ); add_filter( 'allow_password_reset', 'baw_prr_i_am_admin' ); add_filter( 'gettext', 'baw_prr_remove_me' );
function baw_prr_i_am_admin() { return is_admin() && current_user_can('administrator'); } function baw_prr_remove_me($text) { return str_replace( array('Lost your password?', 'Lost your password'), '', trim($text, '?') ); }
function disable() { if ( is_admin() ) { $userdata = wp_get_current_user(); $user = new WP_User($userdata->ID); if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' ) return true; } return false; }
function remove($text) { return str_replace( array('Lost your password?', 'Lost your password'), '', trim($text, '?') ); } }
$pass_reset_removed = new Password_Reset_Removed(); ?>
Pour l’installer sur votre WordPress, connectez-vous sur votre serveur FTP à l’aide de votre client favori – FileZilla, Tansmit, etc. Créez un nouveau dossier que vous nommerez mu-plugins dans le répertoire /wp-content/
Ce dossier présente une particularité propre à WordPress : tous les plugins présents à l’intérieur seront activés d’office – d’où le nom de must-use pour mu.
Envoyez le script PHP que vous aurez préalablement télécharger ou copier dans un nouveau fichier que vous nommerez par exemple lost-password.php.
Vous pouvez également télécharger directement le script à partir du lien suivant :
Plugin WordPress pour empêcher la réinitialisation de mot de passe.
Taille : 1,4 Ko • Hits : 1 144
Cette technique a été mise en place sur WordPress Channel afin d’améliorer le niveau de sécurité général. N’oubliez pas d’user d’un mot de passe solide et de le changer régulièrement.
Par Aurélien Denis
Consultant & Développeur WordPress / WooCommerce.
Un site à créer, à maintenir ou à débuguer ? Contactez-moi.
Bonjour navré de laisser un commentaire sur un post vieux de presque deux ans mais je voulais savoir si il etait toujours judicieux d’installer ce mu-plugin avec la nouvelle version de wordpress ?
Et si oui pouvez vous me precisez la demarche a suivre, en effet il y a quelque etapes qui m’échappe :
1)dans le répertoire /wp-content/mu-plugins déposer le fichier php contenant le premier script de la page
2)”Envoyez le script PHP que vous aurez préalablement télécharger ou copier dans un nouveau fichier que vous nommerez par exemple lost-password.php”. ?!?!?!
Parlez vous d’un autre script ou du meme ? (Password Reset Removed = lost-password.php?????)
Merci a toi et julio potier
je ne commente pas beaucoup mais suit vos actus/astuce/hack/test et autres articles que vous publier a tous les deux.
Depuis que je me suis lancer dans l’aventure wordpress les scripts donner comme ca me font peur : ne sachant pas les comprendre completement(ou pas du tout d’ailleurs) il est legitime de ce demander si la personne qui le met a disposition est fiable et n’as pas lancer “une porte d’entré” grande ouverte pour les hackeurs.
La correction de julio est rassurante ^^
Continuer comme ça les gars, bravo pour la motiv des divers tuto
(une idéé comme ca : avez vous deja penser a demander un espace sur le site wordpress ou vous pourriez mettre à disposition les tutos fiables et pertinent pour faciliter leur accés au nouveau comme moi ???)
Cordialement
Pour l’avoir testé à l’instant (il est en place sur ce site), le script fonctionne bien. Attention toutefois à ne pas l’installer si WordPress dispose d’un espace membre (en WooCommerce notamment) car cela bloquerait la réinitialisation des mots de passe des clients.
Bonsoir, je découvre ce site avec grand intérêt, félicitations pour le travail… Je serai intéressé pour voir la version final du script proposé par BoiteAWeb… Je débutes avec WP, alors pardonnez mon incompétence…
Cordialement.
Voilà, article à jour, merci Aurélien, j’ai modifié la fonction « disable » pour qu’elle soit optimisée (une seule ligne), j’ai supprimé la classe (inutile), j’ai ajouté un hook sur l’update du profil avec ‘user_profile_update_errors’ et son 3ème paramètre « user ». Il me suffit de supprimer le pass pour qu’il ne soit pas mis à jour.
Là maintenant on ne peut VRAIMENT plus changer son pass, même si on est un hacker 😉
Bonjour !
Attention, il est tout de même possible de modifier le mot de passe avec ce plugin !
Je viens de tester et c’est tout à fait faisabl “pour un hacker”.
Ne pas confondre “show” et “allow”, donc show_password_fields=false empêche juste l’affichage des champs mais pas la modification du pass.
Voilà pour l’info du jour :]
WordPress dispose de fonctionnalités de mises à jour automatiques pour le cœur, les extensions et les thèmes. Ce guide vous apprend comment désactiver ces…
Migrer du contenu multilingue avec des médias depuis une ancienne technologie vers un nouveau site WordPress doté d’une architecture personnalisée : tel est le…
Avec des milliers de thèmes disponibles, le choix d’un thème WordPress pour votre site professionnel ou personnel est une étape cruciale. Évitez les nombreux…
Charger les polices Google depuis votre propre serveur vous offrira de meilleures performances et un respect de la vie privée de vos visiteurs. Explications…
Découvrez les extensions WordPress qui allient l’intelligence artificielle pour vous aider à générer du contenu de qualité en un rien de temps. L’IA au…
Bonjour, peut-on mettre en place ce script et autoriser les “clients” (customer) enregistrés à contourner l’interdiction ?
Bonjour,
Je n’arrive pas à mettre en place cette solution, la fonction est toujours active chez moi.
Pouvez-vous m’aider ?
Bonjour navré de laisser un commentaire sur un post vieux de presque deux ans mais je voulais savoir si il etait toujours judicieux d’installer ce mu-plugin avec la nouvelle version de wordpress ?
Et si oui pouvez vous me precisez la demarche a suivre, en effet il y a quelque etapes qui m’échappe :
1)dans le répertoire /wp-content/mu-plugins déposer le fichier php contenant le premier script de la page
2)”Envoyez le script PHP que vous aurez préalablement télécharger ou copier dans un nouveau fichier que vous nommerez par exemple lost-password.php”. ?!?!?!
Parlez vous d’un autre script ou du meme ? (Password Reset Removed = lost-password.php?????)
Merci a toi et julio potier
je ne commente pas beaucoup mais suit vos actus/astuce/hack/test et autres articles que vous publier a tous les deux.
Depuis que je me suis lancer dans l’aventure wordpress les scripts donner comme ca me font peur : ne sachant pas les comprendre completement(ou pas du tout d’ailleurs) il est legitime de ce demander si la personne qui le met a disposition est fiable et n’as pas lancer “une porte d’entré” grande ouverte pour les hackeurs.
La correction de julio est rassurante ^^
Continuer comme ça les gars, bravo pour la motiv des divers tuto
(une idéé comme ca : avez vous deja penser a demander un espace sur le site wordpress ou vous pourriez mettre à disposition les tutos fiables et pertinent pour faciliter leur accés au nouveau comme moi ???)
Cordialement
Pour l’avoir testé à l’instant (il est en place sur ce site), le script fonctionne bien. Attention toutefois à ne pas l’installer si WordPress dispose d’un espace membre (en WooCommerce notamment) car cela bloquerait la réinitialisation des mots de passe des clients.
Merci du soutien ! 😉
Bonsoir, je découvre ce site avec grand intérêt, félicitations pour le travail… Je serai intéressé pour voir la version final du script proposé par BoiteAWeb… Je débutes avec WP, alors pardonnez mon incompétence…
Cordialement.
Bonsoir, mon code est celui qui est en premier dans l’article. Le second est l’original.
A bientôt !
Voilà, article à jour, merci Aurélien, j’ai modifié la fonction « disable » pour qu’elle soit optimisée (une seule ligne), j’ai supprimé la classe (inutile), j’ai ajouté un hook sur l’update du profil avec ‘user_profile_update_errors’ et son 3ème paramètre « user ». Il me suffit de supprimer le pass pour qu’il ne soit pas mis à jour.
Là maintenant on ne peut VRAIMENT plus changer son pass, même si on est un hacker 😉
Good job ! 😎
Bonjour !
Attention, il est tout de même possible de modifier le mot de passe avec ce plugin !
Je viens de tester et c’est tout à fait faisabl “pour un hacker”.
Ne pas confondre “show” et “allow”, donc show_password_fields=false empêche juste l’affichage des champs mais pas la modification du pass.
Voilà pour l’info du jour :]
Salut !
Et tu penses que l’on pourrait améliorer ce script pour corriger ce problème ou pas du tout ? 🙂
je suis passer totalement à coté de cette fonction mais d’un autre coté, je trouve ca dérangeant de désactiver cette fonction …
surtout que je vois pas comment un user peut recuperer le mdp …
tant qu’on se connecte avec droits restreints, en https et les sauvegqrdes OK, je vois pas trop le pb en fait …
merci pour cet éclairage !
Sebastien
C’est simple : un non admin ne peut pas réinitialiser son mot de passe.
De fait, si un hacker tente de faire quelque chose (c’est courant en ayant piraté le compte mail) c’est impossible.