WordPress & Référencement naturel
Mes servicesWordPress - Référencement
Hébergement WordPress
Vous êtes ici : SeoMix » WordPress » Hacks, fonctions et snippets WordPress » Désactiver le renouvellement de mot de passe dans WordPress

Désactiver le renouvellement de mot de passe dans WordPress

WordPress passwordsOn m'a demandé il y a quelques jours s'il l'on pouvait désactiver l'option de renouvellement automatique d'un mot de passe dans WordPress.

Ne sachant ni comment faire, ni l'intérêt de faire une telle chose, je me suis penché sur la question. Et j'ai trouvé la réponse avec deux simples hacks.

Supprimer le renouvellement du Password WordPress

La première fonction à mettre en place est tout simplement de rendre impossible la demande de renouvellement pour l'ensemble de vos utilisateurs, vous y compris.

Dès que l'utilisateur demandera un nouveau mot de passe, un message lui indiquera que cela n'est pas possible. Pour cela, copiez-le code suivant dans le fichier functions.php de votre thème :

// La fonctionnalité de renouvellement de mot de passe ne fonctionnera pas
function supprimer_rest_mdp() {return false;}
add_filter ('allow_password_reset','supprimer_rest_mdp');

La deuxième étape consiste à supprimer les deux liens qui permettent d’accéder à cette fonctionnalité. Le premier lien pour le mot de passe oublié est situé sous le formulaire de login. Le second bouton de renouvellement de mot de passe est quant à lui situé dans le message d'erreur qui est affiché si l'utilisateur se trompe en entrant ses identifiants.

Renouveler son mot passe sous WordPress

2 liens pour renouveller son mot passe sous WordPress

Si votre WordPress est en langue anglaise, utilisez le code suivant :

//Version anglaise : On enlève le lien de renouvellement du MDP en bas du formulaire de bas de page
function enleve_mdp_text ($text) {if ($text == 'Lost your password?') {$text = '';} return $text;}
function enleve_mdp() {add_filter('gettext','enleve_mdp_text');}
add_action ('login_head','enleve-mdp');
function enleve_mdp2 ($text) {return str_replace('Lost your password</a>?','</a>',$text);}
add_filter ('login_errors','enleve_mdp2');

Si par contre votre blog utilise la langue de molière, faites plutôt appel à ce code PHP :

//Version française : On enlève le lien de renouvellement du MDP en bas du formulaire de bas de page
function enleve_mdp_textfr ($text) {if ($text == 'Mot de passe oublié&nbsp;?') {$text = '';} return $text;}
function enleve_mdp_fr() {add_filter('gettext','enleve_mdp_textfr');}
add_action ('login_head','enleve_mdp_fr');
function enleve_mdp_textfr2 ($text) {return str_replace('Avez-vous perdu votre mot de passe</a>&nbsp;?','</a>',$text);}
add_filter ('login_errors','enleve_mdp_textfr2');

Le tour est joué. Il sera désormais impossible pour un utilisateur de votre blog WordPress de demander le renouvellement de son mot de passe, même en connaissant l'url qui active cette fonction.

Source d'origine pour le script : WordPress Support

Modifier les erreurs de login WordPress

On peut également choisir de remplacer le texte d'erreur affiché lors du login par un texte de son choix. Pour cela, un petit hack dans le fichier functions.php de votre thème WordPress fera l'affaire ;

function mafonctionmdp () {return 'TEXTE A AFFICHER';}
add_filter ('login_errors','mafonctionmdp');

Pensez juste à modifier le texte à afficher par le message d'erreur souhaité, comme par exemple :

"Désolé, mais il semblerait qu'une erreur soit apparue lors de votre connexion au blog WordPress"

Pourquoi supprimer le renouvellement d'un mot de passe

Au tout début, j'ai trouvé que le fait de désactiver cette fonction ne pouvait que nuire à un site, puisque c'est la méthode de secoure en cas de perte de son mot de passe. Ce n'est d'ailleurs par pour rien que le lien est intitulé ainsi :

Mot de passe oublié ?

Sauf qu'en y réfléchissant un peu plus longuement, j'ai trouvé de multiples intérêts à la chose. Tout d'abord, on réduira les problèmes de sécurité quand un utilisateur réussit à hacker notre boite email. Comme il ne peut demander le renouvellement du mot de passe, il ne pourra pas hacker notre site.

Ensuite, cela permet de gérer de manière plus drastique une communauté. Imaginons que vous avez créé un compte utilisateur pour avoir un deuxième rédacteur. Au bout de quelques mois, vous décidez de vous séparer de la dite personne, mais vous souhaitez conserver son historique, son compte et les articles qui y sont rattachés. Il ne reste plus qu'à modifier son password, puisque l'utilisateur ne pourra jamais demander le renouvellement de son mot de passe.

Libre à vous donc de faire appel ou non à ce hack WordPress. D'ailleurs, pour plus de sécurité avec le formulaire de login, je vous conseille l'excellent plugin Login Lockdown qui va bloquer une adresse IP si elle tente un trop grand nombre de fois de se loguer avec échec.

Les thèmes relatifs

Voici les thématiques abordées par Désactiver le renouvellement de mot de passe dans WordPress:

14 commentaires
  1. Jeremy
    1 message

    Jeremy - Le 04 avril 2011, 10:48

    Bon article ! Pour ta deuxième remarque, si on décide de se séparer d’un rédacteur tout en gardant ses articles et son historique, il est à mon avis plus simple de modifier son role pour le rendre simple « subscriber » plutot que de changer son mot de passe. Non ?

  2. Pierre
    4 messages

    Pierre - Le 04 avril 2011, 11:16

    Salut Daniel

    Nice post ;o)

    et félicitations

    Pierre

  3. Daniel Roch
    642 messages

    Daniel Roch - Le 04 avril 2011, 13:41

    @Jeremy : c’est aussi une solution, mais elle est (un peu) plus risquée, car un utilisateur niveau « suscriber » peut potentiellement exploiter plus de failles de sécurités (un peu comme les versions 3.0.4 et 3.0.5 de WordPress)

  4. Crunch
    11 messages

    Crunch - Le 04 avril 2011, 20:23

    Article assez intéressant !

    Pour ta 2eme remarque, une astuce serait, au lieu de changer le mot de passe, changer l’adresse mail de l’ancien rédacteur, ainsi, pas de problème ;)

  5. delphine
    2 messages

    delphine - Le 05 avril 2011, 09:09

    C’est moi qui est fait cette demande.
    Il s’agit tout simplement pour moi de gérer le mot de passe de mes abonnés pour que je puisse les gérer moi-même. Les abonnés sont inscrits pour élaborer un espace membre, hors ce membre peut-être une entreprise qui contient de nombreuses personnes. Ainsi, si un employé veut se connecter et qu’il n’a plus le mot de passe, il peut alors passer outre et le changer, son collègue qui n’est aps au courant se retrouve alors dans l’impossibilité de se connecter et va alors la même démarche… Vous comprenez donc alors mon intérêt? Est-ce judicieux? Merci en tout cas pour cet article je vais essayer de le comprendre à la hauteur de mes connaissances. merci encore

    EDIT : une autre question : où dois-je intervenir pour réécrire le texte  » ERROR: The password you entered for the username admin is incorrect.  » afin de le mettre en français d’une part, et d’autre signifier que pour avoir le mot de passe il faut nous contacter.
    En tout cas merci encore, votre solution fonctionne comme je l’espérais. Vive les échanges de compétences!

  6. Daniel Roch
    642 messages

    Daniel Roch - Le 05 avril 2011, 16:04

    Le texte en anglais dépend de la configuration du blog. Il faut avoir définie la langue sur « Français ». Pour cela, il faut éditer le fichier wp-config.php situé à la racine du site et y ajouer le texte suivant:

    define ('WPLANG', 'fr_FR');
  7. Johan
    16 messages

    Johan - Le 05 avril 2011, 16:45

    Hello !
    Vraiment intéressant ton article, cela permet d’ajouter un niveau de sécurité supplémentaire à un blog mono-utilisateur, ce qui est mon cas.

    Merci!

  8. delphine
    1 message

    delphine - Le 05 avril 2011, 18:24

    pour ta réponse au sujet de la langue ok, ce que je cherche à fermer c’est reformuler ce texte. Où dois-je intervenir?
    Merci encore.

  9. Daniel Roch
    642 messages

    Daniel Roch - Le 06 avril 2011, 10:53

    J’ai trouvé comment reformuler le texte d’erreur lors du login WordPress (que ce soit lors d’une erreur au niveau de l’identifiant ou du mot de passe utilisé). J’ai mis à jour l’article avec le hack correspondant. ;)

  10. delphine
    2 messages

    delphine - Le 06 avril 2011, 12:20

    Merci! Je testerai cela demain!
    Par contre, c’est étrange, lorsque que l’identifiant n’est pas correct il m’annonce un message d’erreur en français… « ERREUR : l’identifiant n’est pas valide.  » et pur une erreur du mot de passe : « ERROR: The password you entered for the username david is incorrect. « , cela vient certainement de mon fichier de traduction, à voir… Mais une question me vient alors à l’esprit : ces deux phrases ne viennent pas de la même fonction quelle est celle pour modifier l’erreur sur l’identifiant?
    Je ne connait pas le php, j’image que ce n’est pas trop dur, qu’il s’agit probablement de la même syntaxe, en changeant « login_errors » par le bon terme non?
    Désolé pour mon incompétence en matière de langage…
    Merci pour votre intérêt et vos partage de connaissance, c’est très généreux.

  11. Jérôme
    2 messages

    Jérôme - Le 13 avril 2011, 00:40

    « Il ne reste plus qu’à modifier son password, puisque l’utilisateur ne pourra jamais demander le renouvellement de son mot de passe. » ==> Ne suffirait-il pas de juste changer son email avec un email à toi ? Tout l’historique est conservé, pas de hack, et impossible pour lui de récupérer le mot de passe. En plus tu peux même savoir si il tente de récupérer son mot de passe puisque l’email arrive chez toi :)

  12. Daniel Roch
    642 messages

    Daniel Roch - Le 13 avril 2011, 08:08

    Oui, c’est tout à fait possible.

    Sauf que cela laisse toujours la possibilité de faire un attaque brute force sur le lien de renouvellement du mot de passe. Certes, si l’attaque fonctionne, l’email arriverait aussi chez soi, mais autant épargner cela à son serveur.

  13. Eric
    1 message

    Eric - Le 17 mai 2011, 15:56

    Salut,
    Juste pour préciser que si ton login est relié a un annuaire LDAP. Je me vois mal autorisé les personnes à pouvoir récupérer (dans ce cas modifier) leur mot passe LDAP.

    En tout cas merci pour ce tutos ! exellent :)

  14. dresdes
    1 message

    dresdes - Le 27 juin 2012, 11:03

    bonjour ravie de découvrir ce tuto , mais chez moi ça ne marche
    est ce dû au fait que j’ai personnalisé ma page d’accueil?
    merci

» Commentez cet article !
(Merci de donner un vrai prénom)
(Ne sera jamais publié)
(Modèration subjective)
Html accepté <a> <i> <b> [codesyntax]CODE[/codesyntax]
» Prévisualisez votre message

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress et Daniel Roch. Logo créé par Willy-Bahuaud

Indispensable
WordPress
A propos de SeoMix
Mes servicesWordPress - Référencement
Suivez-nous !
  • 1022 abonnés
  • 177 articles
  • 4107 messages
Vous devriez lire
Seo et emarketing
Les amis