WordPress – Sur mon blog, je reçois des flots d’inscription de users manifestement indésirables

Logo WordPressProblématique

Au démarrage de mon blog, deux ou trois fois par jour, je recevais des demandes d’inscription d’users manifestement spammés. Je ne connais en effet aucun pays du monde dont les habitants portent les noms charmants de qsdflj12er et seraient suffisamment dérangés pour avoir comme adresse mail hhk654ddqs@gmail.com.

C’est énervant, ça pollue et on se demande ce qu’ils viennent faire là aussi visibles qu’un cheval de bois au milieu de la place de Troie. Des chevaux de Troie ? Pas sûr. Mais

Timeo Danaos et dona ferentes

Je crains les Grecs même ceux qui font des cadeaux

donc autant les éliminer sans pitié. Mais ils reviennent et s’accrochent, ce qui prouve bien qu’il s’agit de robots.

Solution

Premier principe : dans Réglages > Utilisateurs, mettre comme rôle par défaut Abonné. Vous n’avez pas, je l’espère, donné comme rôle par défaut Administrateur (il est d’ailleurs surprenant que WordPress autorise ce choix).

Et deux méthodes

  • répérer l’IP et la bloquer par le .htaccess en insérant les lignes

order allow,deny
deny from 99.99.99.999 (c’est un exemple …)
allow from all

ou

order allow,deny
deny from 99.99.99
allow from all
s’il s’agit d’une famille d’IP 99.99.99 qui vous harcèle

  • mais attention s’il s’agit d’une IP de type 10.0.0, celle qu’utilisent les plus malins, il s’agit d’une adresse de routeur. Or les routeurs ne sont que nuisibles, vous risquez donc de filtrer de braves gens intéressés par votre blog. Or il est connu qu’accueillir le client à coup de chevrotines n’est pas le meilleur moyen de réussir dans le commerce. Donc la méthode par .htaccess n’est pas adéquate. Dans ce cas, ajouter dans le robots.txt les lignes

User-agent : *
Disallow : /wp-login.php

Ceci dit, les bons spammeurs, non il n’y a pas de bons spammeurs, disons les spammeurs compétents passent outre le robots.txt. Donc ce n’est pas gagné d’avance.

Comme je vous le disais dans un précédent post, il est impossible d’éviter les grands malfaisants mais juste de se protéger contre les petits malfrats de passage.Là en toute modestie, je ne vous dirai pas l’habituel « le tour est joué ! Alors on dit merci qui ? » mais

BONNE CHANCE !

Pour en savoir plus, quelques livres sur WordPress

WordPress – Je viens d’écrire mon premier article et je ne réussis pas à le relire

Problématique

Vous venez de créer votre blog WordPress. Vous avez écrit votre premier article. Vous affichez la page d’accueil : tout va bien. Vous cliquez sur le titre pour voir la page de l’article. Et pan ! La page 404 arrive.

Je vous rassure. J’oublie cette étape à chaque fois moi aussi.

Que se passe-t-il ?

Solution

Pour les permaliens, vous avez sans doute opté pour une forme autre que la forme courte du style monsite.com?p=12. Et vous avez eu raison:  pour le SEO, on fait plus explicite. Vous avez sans doute opté comme moi pour le titre long (regardez en haut dans la barre d’adresse).

Et vous avez oublié quelque chose. Quoi ? le .htaccess bien sûr. Pourtant WordPress vous affiche ce qu’il faut insérer mais à ce moment-là le petit dernier vient de rentrer de classe ou Madame du travail et vous avez zappé.

Car WordPress, et c’est sa force, a sa manière à lui de gérer les liens et les URL. Mais sans les règles de redirection de .htaccess, il y aura des problèmes. Dont celui que vous rencontrez là.

Alors ouvrez votre .htaccess préféré et ajoutez les fameuses lignes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

De préférence, insérez-le et gardez les en fin du .htaccess. Elles sont là définitivement. D’autres lignes viendront ultérieurement, vous les mettrez en tête du .htaccess pour les surveiller comme le lait sur le feu.

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ?

POUR EN SAVOIR PLUS : les derniers livres parus sur WordPress sont sur

DerniersParus.com » WordPress

WordPress – L’admininistration

WordPress - L'admininistrationProblématique

Le user admin est le premier créé automatiquement par WordPress. Et inutile de préciser l’importance de l’administrateur. Qui n’a pas un jour perdu son mot de passe et pleuré toutes les larmes de son corps ou brisé un vase pour se calmer les nerfs en se traitant de noms que la décence m’interdit de répéter ici.

Or cet administrateur est un point de faiblesse dans la sécurité. Celui qui se rend maître de l’administrateur prend le pouvoir sur votre blog aussi sûrement qu’un général en chef en Amérique du Sud.

Si vous tombez sur un hacker acharné et particulièrement vicieux, de toute façon votre sort est réglé. Mais ils sont trop occupés à des activités plus lucratives que de casser les pieds de petites gens comme nous. En gros, si vous avez un Van Gogh chez vous, Georges Clooney vous le volera quoiqu’il arrive dans Ocean 37.

Solution

Mais, avec un peu de prudence, vous pouvez éviter qu’un malfaisant de passage ne fasse trop de dégâts.

Pour ça, brouillez les pistes, trouvez un nom pour votre administrateur qui n’a rien à voir avec admin, votre nom ou votre site. Et supprimez l’admin par défaut avec le nouvel administrateur créé.

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ?

Pour en savoir plus, quelques livres sur WordPress 

WordPress – Vous n’avez pas les droits suffisants pour accéder à cette page

Problématique

Pour sécuriser WordPress, il vaut mieux ne pas conserver le prefixe de tables par défaut « wp_ ». Tous les hackers, pirates et malfaisants de la planète informatique vont taper là-dedans en priorité. Il est donc prudent d’en prendre une autre.

Par exemple, vous lancez un site de vente de bandes molletières parce que vous pensez que les Allemands vont encore nous prendre par surprise à Sedan, qu’il faudra équiper notre vaillante armée et que, comme la dernière guerre que nous ayons gagné c’est 14-18, prenez comme préfixe bm_ (bm comme « bande molletière », faut suivre un peu).

Si vous aviez voulu créer le site de la Fédération Européenne des collectionneurs de sous-bocks, le préfixe « sb_ » vous serait venu à l’idée immédiatement.

Vous me direz, et vous aurez raison, qu’avec un robot pas trop primitif, le pirate sus-mentionné aura tôt fait de faire une petite boucle pour dénicher tous vos préfixes.

Sachez que rien ne vous empêche de prendre une préfixe de plus de trois caractères, vous pouvez tout à fait opter pour « essaiededenicherleprefixegrosmalin_ », si le pirate est russe ou chinois, peu de chances qu’il ne trouve. Vous pouvez prendre aussi « knokkelezout_ », s’il n’est pas belge (flamand), il n’imaginera même pas qu’un mot pareil puisse exister. Or il y a beaucoup moins de pirates belges néeerlandophones que russes ou chinois, ce n’est pas une question de niveau. Pourtant c’est à Knokke que j’ai mangé la meilleure moules-frites de ma vie.

Le problème est que vous avez peut-être déjà créé votre base avec le préfixe standard wp_. Il n’y a pas de honte à ça : j’ai fait l’erreur. Comment procéder ?

Marche à suivre

Nous allons procéder lentement mais sûrement car au moindre écart, votre blog se mettra en grève et qu’il ne faut SURTOUT pas perdre les données. Supposons que votre nouveau préfixe soit new_

  1.  utiliser phpAdmin pour copier les 11 tables wp_ de la manière suivante pour chaque table :
    • sélectionner la table
    • cliquer sur Opérations
    • aller dans le 2e pavé de droite Copier la table vers (base.table)
    • remplacer dans le nom de table affiché le préfixe ancien wp_ par new_
    • cliquer l’option Structure et données
    • puis sur le bouton Exécuter
    • et cela pour les 11 tables …
    • vous détruirez les anciennes plus tard
  2. éditez le fichier wp_config.php situé dans le répertoire racine de votre installation WordPress (racine du site si vous avez installé WordPress en racine, dans le répertoire choisi sinon)
    • assurez-vous qu’il soit bien éditable sinon changer les propriétés de votre fichier
    • dans la ligne $table_prefix  = ‘wp_’; remplacez wp_ par new_

Voilà c’est fait. Facile non ? Erreur …

Ce n’est pas fait et ce n’est pas facile car vous lancez votre blog, vous voulez vous connecter en administrateur légitime que vous êtes. Et que vous répond WordPress ?

Vous n’avez pas les droits suffisants pour accéder à cette page

Vous vous dites

Mais si je les ai !

Et vous les avez mais WordPress malgré ses qualités présente encore quelques défaillances dont celle-ci.

Solution

Il faut maintenant aller corriger à la main certaines informations apparemment résiduelles mais, de fait, bloquantes du user administrateur

La marche à suivre :

  1. allez d’abord dans la table new_user et identifiez l’ID de l’administrateur
  2. sélectionnez la table new_usermeta
  3. cliquez l’onglet Recherche
  4. saisissez dans la case user_id, l’ID retrouvé ci-dessus
  5. saisissez dans la case meta_key, LIKE et wp_% (j’ai bien dit wp_, l’ancien préfixe)
  6. vous trouverez entre autres les meta_key : wp_capabilities, wp_user-settings, wp_user-settings-time
  7. remplacez –les par  : new_capabilities, new_user-settings, new_user-settings-time
  8. sélectionnez la table  new_options et remplacez dans la colonne option_name la valeur wp_user_roles par new_user_roles (remarque très pertinente de Smax le 14 mars 2014)

Il semble cependant que la phase 8 soit la plus délicate,. En effet, selon l’historique de votre site WordPress (version initiale, historique des mises à jour, etc …), les entrées anciennes en wp_ varient avec une perversité qui ne surprendra aucun programmeur lucide et expérimenté. Je me permets donc de citer un extrait du commentaire très pertinent de Fand du 22 mars 2014, auquel j’ajouterai mes précisions :

Bien penser à renommer toute les entrées wp_% (et donc utiliser l’outil de recherche : voir point suivant)
Ne pas faire uniquement confiance à l’outil de recherche qui n’a pas trouvé wp_user_roles, même maintenant où je peux le voir, la recherche ne le trouve pas (ne pas oublier pas la syntaxe de recherche « %wp_% » – tout ce qui contient « wp_ » –  théoriquement ça fonctionne bien)
Et surtout, afficher plus que les 25 lignes par défauts dans phpmyadmin ! (exact, c’est très énervant cet aspect de phpadmin, on se fait toujours piéger)

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ? (vous pouvez rajouter Smax et Fand cette fois-ci)

Pour en savoir plus, quelques livres sur WordPress