Sécuriser un site WordPress : les mesures essentielles
WordPress fait tourner une grande partie du web, ce qui en fait une cible de choix. Voici les mesures essentielles pour garder votre site protégé sans être expert.
Pourquoi WordPress est-il régulièrement ciblé ?
Sécuriser WordPress consiste à protéger simultanément le cœur du CMS, les comptes administrateurs, les extensions, les thèmes et l’hébergement. Sa popularité et son vaste écosystème en font une cible fréquente pour les attaques automatisées.
Le problème ne vient pas uniquement de WordPress lui-même. La surface d’attaque comprend :
- le cœur de WordPress ;
- les extensions installées ;
- le thème actif ;
- les thèmes et extensions inutilisés ;
- la version de PHP ;
- les comptes administrateurs ;
- les mots de passe ;
- le serveur web et la base de données.
Les incidents sont souvent facilités par un composant obsolète, un mot de passe réutilisé, une extension abandonnée ou des permissions trop larges.
WordPress à jour
+ extensions fiables
+ comptes protégés
+ sauvegardes testées
+ hébergement sécurisé
= risque fortement réduit
Aucune configuration ne garantit une sécurité absolue. L’objectif est de supprimer les faiblesses évitables et de limiter les conséquences d’un incident.
Pour installer le CMS dans de bonnes conditions, consultez le guide pour héberger un site WordPress.
Tout garder à jour
Les mises à jour corrigent des erreurs, améliorent la compatibilité et peuvent résoudre des vulnérabilités de sécurité.
Surveillez régulièrement :
| Composant | Action |
|---|---|
| Cœur WordPress | Installer les versions stables disponibles |
| Extensions | Mettre à jour ou remplacer les extensions abandonnées |
| Thèmes | Mettre à jour le thème actif et supprimer les thèmes inutiles |
| PHP | Utiliser une version maintenue et compatible |
| Serveur | Appliquer les correctifs du système et du serveur web |
Accédez aux mises à jour depuis :
Tableau de bord
→ Mises à jour
Les mises à jour automatiques peuvent être utiles pour certains composants. Elles ne dispensent pas de surveiller les éventuelles erreurs et incompatibilités.
Avant une mise à jour importante :
- réalisez un export récent ;
- vérifiez que la sauvegarde est exploitable ;
- consultez la compatibilité des extensions essentielles ;
- testez si possible sur une copie du site ;
- effectuez la mise à jour ;
- contrôlez les pages, formulaires et fonctions critiques.
Ne conservez pas une extension obsolète uniquement parce qu’elle fonctionne encore. Si son développement est abandonné, recherchez une alternative maintenue.
Sécuriser les comptes administrateurs
Évitez d’utiliser un identifiant évident comme :
admin
Connaître l’identifiant ne suffit pas à compromettre un compte, mais cela retire une information que l’attaquant aurait autrement besoin de découvrir.
Utilisez un mot de passe :
- long ;
- aléatoire ;
- unique ;
- généré par un gestionnaire ;
- différent de ceux de votre e-mail et de votre hébergement.
Activez également la double authentification avec une extension réputée. Une application TOTP ou une clé de sécurité est préférable au SMS lorsque ces méthodes sont disponibles.
Le guide sur les mots de passe forts et la 2FA détaille ces protections.
Réduisez aussi le nombre d’administrateurs. WordPress propose plusieurs rôles :
| Besoin | Rôle possible |
|---|---|
| Administrer tout le site | Administrateur |
| Gérer les contenus des autres | Éditeur |
| Publier ses propres articles | Auteur |
| Préparer des contenus | Contributeur |
| Accéder à un compte simple | Abonné |
N’attribuez pas le rôle Administrateur à une personne qui doit uniquement publier des articles.
Supprimez ou désactivez rapidement les comptes qui ne sont plus utilisés et vérifiez régulièrement la liste :
Utilisateurs
→ Tous les comptes
Protéger la page de connexion
La page wp-login.php reçoit fréquemment des tentatives automatisées. Vous pouvez réduire ce bruit et bloquer les répétitions avec une extension de limitation des connexions.
Les mesures utiles comprennent :
- limiter les tentatives échouées ;
- ajouter une temporisation ;
- activer la 2FA ;
- utiliser un CAPTCHA si le contexte le justifie ;
- surveiller les connexions ;
- bloquer les adresses répétant les échecs.
Changer l’URL de connexion peut réduire certaines tentatives automatisées, mais ne constitue pas une protection suffisante à lui seul. Une URL masquée peut être retrouvée ou contournée selon les extensions et les fonctions du site.
Sur un VPS, Fail2ban peut compléter les protections applicatives lorsque les tentatives sont correctement enregistrées dans des journaux exploitables. Consultez le guide pour protéger votre VPS avec Fail2ban.
Ne bloquez pas votre propre adresse sans conserver une méthode d’accès de secours à WordPress et au serveur.
Choisir des extensions et thèmes fiables
Installez uniquement les composants réellement nécessaires. Chaque extension ajoute du code, des mises à jour et une nouvelle surface d’attaque.
Avant une installation, vérifiez :
- la source du téléchargement ;
- la date de la dernière mise à jour ;
- la compatibilité annoncée ;
- la documentation ;
- l’historique du développeur ;
- les avis récents ;
- la réactivité du support ;
- les permissions et fonctions demandées.
Privilégiez le répertoire officiel WordPress ou le site d’un éditeur clairement identifié.
Supprimez les extensions inutilisées :
Extensions
→ Extensions installées
→ Désactiver
→ Supprimer
Une extension désactivée reste présente sur le serveur. Si ses fichiers sont vulnérables et directement accessibles, elle peut encore représenter un risque.
Conservez seulement le thème actif et, si nécessaire, un thème officiel de secours à jour.
N’installez jamais une extension ou un thème “nulled”, cracké ou piraté. Le code peut contenir une porte dérobée, un compte caché, un spammeur ou un système de vol de données.
Un composant premium doit être obtenu avec une licence légitime auprès de son éditeur ou d’un distributeur autorisé.
HTTPS, permissions et sauvegardes
Activer HTTPS
HTTPS chiffre les échanges entre les visiteurs et le site. Il est indispensable pour les connexions, formulaires, cookies de session et espaces d’administration.
Sur un VPS Nginx, consultez le guide pour activer HTTPS avec Let’s Encrypt.
Vérifiez ensuite que WordPress utilise bien des adresses en https:// et qu’aucune ressource n’est encore chargée en HTTP.
Appliquer des permissions adaptées
Des valeurs courantes sont :
Dossiers : 755
Fichiers : 644
Ces valeurs constituent une base, pas une règle universelle. Le propriétaire et le groupe doivent correspondre à l’utilisateur qui déploie le site et au service web.
Pour appliquer séparément les permissions :
find /var/www/wordpress \
-type d \
-exec chmod 755 {} \;
find /var/www/wordpress \
-type f \
-exec chmod 644 {} \;
Protégez davantage wp-config.php, lorsque la configuration de votre serveur le permet :
chmod 640 /var/www/wordpress/wp-config.php
N’utilisez jamais :
chmod -R 777 /var/www/wordpress
Cette commande accorde l’écriture et l’exécution à tous les utilisateurs.
Prévoir des sauvegardes restaurables
Sauvegardez au minimum :
- la base de données ;
wp-content/uploads/;- les extensions et thèmes personnalisés ;
wp-config.php, séparément et de manière sécurisée ;- les configurations Nginx ou Apache ;
- les éventuelles tâches programmées.
Des sauvegardes automatiques sont incluses pour vous aider à restaurer. Conservez aussi vos propres exports réguliers : vous restez responsable de vos données.
Une sauvegarde doit être testée sur un environnement distinct. Consultez le guide pour mettre en place une stratégie de sauvegarde serveur.
Réduire l’exposition des fonctions sensibles
Désactiver l’éditeur de fichiers
Un administrateur WordPress peut normalement modifier certains fichiers d’extensions et de thèmes depuis le tableau de bord.
Ajoutez dans wp-config.php, avant la ligne de fin du fichier :
define( 'DISALLOW_FILE_EDIT', true );
Cette directive réduit les possibilités de modification directe depuis l’administration. Elle ne bloque pas les mises à jour ou installations réalisées par les fonctions habituelles.
Protéger wp-config.php
Ce fichier contient les identifiants de base de données et des clés de sécurité.
Il ne doit jamais être :
- publié dans Git ;
- inclus dans une archive publique ;
- envoyé dans un ticket sans nettoyage ;
- accessible en téléchargement depuis le web ;
- lisible par tous les utilisateurs du serveur.
Limiter les informations techniques affichées
Vous pouvez retirer certaines indications de version visibles dans le code HTML, mais cela ne constitue pas une véritable protection. Une version ou un composant peut souvent être identifié par d’autres moyens.
La priorité reste :
Mettre à jour plutôt que masquer
Désactivez également l’affichage public des erreurs PHP en production. Une erreur peut révéler des chemins internes, des noms de fichiers ou des informations techniques.
Évaluer l’utilité de XML-RPC
xmlrpc.php est utilisé par certaines applications mobiles, intégrations et fonctions de publication distante. Si votre site n’en a pas besoin, vous pouvez envisager de le restreindre ou de le désactiver.
Testez toutefois les fonctions dépendantes avant toute modification. Certaines extensions et certains services peuvent utiliser XML-RPC.
Une restriction Nginx complète peut prendre cette forme :
location = /xmlrpc.php {
deny all;
}
Testez toujours la configuration avant de la recharger :
sudo nginx -t
sudo systemctl reload nginx
En résumé
- Sécuriser WordPress nécessite de protéger le cœur, les extensions, les thèmes, les comptes et l’hébergement.
- Mettez régulièrement à jour WordPress, PHP, les plugins et les thèmes.
- Sauvegardez et testez avant une mise à jour importante.
- N’utilisez pas
admincomme identifiant principal. - Protégez chaque administrateur avec un mot de passe unique et la 2FA.
- Limitez le nombre d’administrateurs et utilisez les rôles WordPress.
- Protégez
wp-login.phpcontre les tentatives répétées. - Installez uniquement des extensions et thèmes provenant de sources fiables.
- Supprimez les composants inutilisés au lieu de simplement les désactiver.
- N’utilisez jamais de plugin ou thème nulled.
- Activez HTTPS et utilisez des permissions adaptées.
- N’appliquez jamais
chmod 777comme solution rapide. - Protégez
wp-config.phpet désactivez l’éditeur de fichiers. - Restreignez XML-RPC uniquement si aucune fonction ne l’utilise.
- Conservez des sauvegardes indépendantes et testez leur restauration.
- Aucune mesure ne garantit une sécurité absolue : la protection repose sur plusieurs couches complémentaires.
- Pour sécuriser WordPress sur un hébergement en France conforme au RGPD, avec stockage NVMe, Anti-DDoS L3/L4/L7 inclus, panel de gestion et support francophone, découvrez l’offre hébergement web TalCloud.