Article · WordPress
Sécuriser un site WordPress : 7 réglages essentiels, sans extension lourde
Quand j’ai repris ce site pour le refondre, plus de 300 commentaires indésirables m’attendaient dans la file de modération. Rien de grave, mais un bon rappel : la plupart des piratages WordPress exploitent des négligences toutes simples. J’applique désormais sept réglages par défaut, sur chaque site que je touche.
1. Tout mettre à jour, et enlever ce qui ne sert plus
Le cœur de WordPress, le thème et les extensions doivent rester à jour. Une extension, c’est un peu comme une appli qu’on ajoute à son téléphone. Si on ne la met jamais à jour, les failles connues restent ouvertes. Dans la page Extensions, j’active les mises à jour automatiques pour celles dont je connais l’éditeur et que je sais fiables. Pour les autres, je passe régulièrement dans la page des mises à jour.
Le point qu’on oublie souvent, c’est le ménage. Un thème ou une extension désactivé mais toujours installé reste une porte d’entrée, même s’il ne s’affiche nulle part. Sur ce site, le passage d’Elementor aux blocs natifs m’a permis de supprimer tout ce qui gravitait autour du constructeur de pages. Moins il y a de composants, moins il y a de choses à surveiller.
2. Des extensions officielles, sous licence, ou rien
On me demande parfois d’installer une extension premium récupérée « ailleurs » pour éviter de payer la licence. Je refuse, et j’explique pourquoi. Une copie qui ne vient pas de l’éditeur ne reçoit pas les correctifs de sécurité, et il arrive qu’elle contienne du code malveillant glissé par la personne qui l’a redistribuée. Le risque n’est pas théorique. Si le budget ne permet pas la licence, mieux vaut chercher une alternative gratuite, maintenue, avec des mises à jour récentes dans le répertoire officiel.
3. Ne pas donner l’identifiant à l’attaquant
Par défaut, WordPress publie la liste des comptes du site à une adresse technique que n’importe qui peut consulter, et les archives auteur affichent aussi l’identifiant de connexion. Autrement dit, quelqu’un qui veut forcer l’entrée connaît déjà la moitié du secret. Il ne lui reste qu’à deviner le mot de passe.
Je bloque donc cette liste pour les visiteurs non connectés et je désactive les archives auteur. Selon l’extension SEO en place, c’est souvent une simple case à cocher. Le principe est simple : un attaquant qui ne connaît pas l’identifiant a deux choses à trouver au lieu d’une.
4. Une phrase de passe, et la double authentification
La plupart des attaques sur la page de connexion sont automatisées. Un robot essaie des milliers de mots de passe courants, l’un après l’autre. Contre ça, un gestionnaire de mots de passe et une phrase de passe longue suffisent à neutraliser la grande majorité des tentatives. La double authentification (un code sur le téléphone en plus du mot de passe) ajoute une deuxième serrure. Ça prend cinq minutes à mettre en place et ça change tout le jour où un mot de passe fuite ailleurs.
5. Les en-têtes de sécurité, une consigne donnée au navigateur
Chaque fois qu’un navigateur charge une page, le serveur peut lui glisser quelques consignes. Interdire l’affichage du site dans un cadre sur un autre site, ce qui empêche le détournement de clics. Refuser qu’un fichier soit interprété autrement que ce qu’il prétend être. Limiter ce qui est transmis aux sites tiers quand on clique sur un lien. Forcer le HTTPS une fois pour toutes, quand le site est entièrement chiffré.
Ce sont les en-têtes de sécurité HTTP. Sur ce site, je les ai ajoutés dans la configuration côté serveur, ce qui se fait en quelques lignes. Le piège, c’est d’être trop restrictif et de casser un contenu intégré ou un aperçu. Je préfère commencer prudent, tester le site page par page, puis resserrer.
6. Masquer ce qui n’a pas à être public
Un site WordPress fraîchement installé laisse traîner quelques éléments qui ne servent à rien aux visiteurs et rendent service aux curieux. Un fichier de présentation qui indique la version installée. Le listing des dossiers, qui permet de parcourir l’arborescence comme un explorateur de fichiers. Et un vieux point d’accès à distance (xmlrpc), utile il y a dix ans, aujourd’hui surtout exploité pour tester des mots de passe en série. Quand ils ne sont pas utilisés, je les bloque au niveau du serveur.
7. Fermer les commentaires si personne ne s’en sert
Retour aux 300 commentaires de la file de modération. Ce site n’a jamais eu vocation à héberger des discussions, et pourtant les formulaires étaient ouverts. Chaque commentaire indésirable, c’est du bruit dans le tableau de bord et une surface d’attaque de plus. Dans Réglages → Discussion, j’ai fermé les commentaires et les rétroliens, puis j’ai vidé la file. Sur un site où les échanges comptent, je les garde évidemment, avec une modération active.
Et le jour où ça tourne mal ?
Aucune de ces mesures ne remplace une sauvegarde régulière, stockée en dehors du serveur, et surtout testée. Une sauvegarde qu’on n’a jamais essayé de restaurer n’est qu’un espoir. Sur ce site, UpdraftPlus s’en charge à intervalle fixe, avec une copie envoyée hors du serveur. C’est la seule vraie garantie de pouvoir revenir en arrière rapidement, quelle que soit la cause du problème.
Ces sept réglages prennent moins d’une heure, ne ralentissent pas le site et ne demandent aucune extension lourde. Une extension de sécurité complète, avec pare-feu et journal des connexions, reste utile sur un site à plusieurs comptes ou à fort trafic. Elle ne dispense pas de ces bases. Elle vient par-dessus.
La sécurité est une moitié d’un site en bonne santé ; l’autre, c’est le SEO technique sur WordPress, que je vérifie avant chaque mise en ligne.
Un poste à pourvoir ? Parlons-en.
Je recherche un CDI de développeur WordPress ou de chargé de marketing digital, à Paris, ailleurs en France ou au Luxembourg.