Guide complet de la sécurité WordPress
De la configuration initiale à la surveillance continue : tout pour protéger votre site WordPress contre les menaces actuelles. Un guide de référence complet et actionnable.
Sommaire du guide
1. Les fondamentaux de la sécurité WordPress
WordPress alimente plus de 43% des sites web dans le monde, ce qui en fait de loin le CMS le plus utilisé sur la planète. Cette popularité phénoménale a un revers : elle en fait une cible privilégiée pour les attaquants. Selon les données de Wordfence, plus de 90 milliards de tentatives de connexion malveillantes sont bloquées chaque année sur les installations WordPress à travers le globe.
Comprendre les menaces est la première étape pour s'en protéger. Les attaques les plus courantes sur WordPress sont :
- Les attaques par force brute : des robots testent des milliers de combinaisons identifiant/mot de passe par minute sur les pages de connexion WordPress. C'est l'attaque la plus fréquente et la plus facile à contrer.
- L'exploitation de vulnérabilités connues : les failles de sécurité dans les plugins et thèmes sont publiées publiquement, ce qui permet aux attaquants de cibler les sites qui n'ont pas mis à jour leurs composants.
- Les injections SQL et XSS : des attaques plus sophistiquées qui exploitent des failles dans le code pour accéder à la base de données ou injecter du code malveillant.
- Le phishing et l'ingénierie sociale : des techniques visant à tromper les administrateurs pour obtenir leurs identifiants.
La sécurité WordPress repose sur trois piliers fondamentaux que nous allons détailler tout au long de ce guide :
- Prévention : configurer correctement son site, maintenir ses composants à jour, utiliser des mots de passe robustes et limiter la surface d'attaque
- Détection : surveiller les activités suspectes, scanner régulièrement les fichiers, analyser les logs et mettre en place des alertes automatiques
- Réaction : avoir un plan de réponse aux incidents, des sauvegardes fonctionnelles et testées, et des procédures documentées pour restaurer rapidement un site compromis
Aucune mesure de sécurité isolée ne suffit. C'est la combinaison de multiples couches de protection — ce qu'on appelle la « défense en profondeur » — qui rend votre site résilient face aux attaques. Chaque couche ralentit et complique le travail de l'attaquant, rendant votre site moins intéressant par rapport à des cibles moins protégées.
2. Choisir un hébergement sécurisé
La sécurité commence avant même l'installation de WordPress, avec le choix de l'hébergeur. L'hébergement est la fondation sur laquelle repose toute votre stratégie de sécurité. Un hébergeur négligent peut rendre inutiles toutes vos autres mesures de protection.
Un bon hébergeur WordPress doit impérativement proposer :
- PHP 8.1 ou supérieur : les versions antérieures de PHP ne reçoivent plus de correctifs de sécurité. Utiliser PHP 7.4 ou moins expose votre site à des vulnérabilités connues et non corrigées au niveau du langage lui-même.
- Certificat SSL gratuit : via Let's Encrypt ou équivalent. Le HTTPS est indispensable pour chiffrer les communications entre vos visiteurs et votre serveur, en particulier les formulaires de connexion et de paiement.
- Pare-feu au niveau serveur : ModSecurity ou équivalent pour filtrer les requêtes malveillantes avant qu'elles n'atteignent votre code WordPress.
- Isolation des comptes : sur un hébergement mutualisé, un site compromis ne doit pas pouvoir affecter les autres sites hébergés sur le même serveur. C'est un point souvent négligé.
- Sauvegardes automatiques : au minimum quotidiennes, avec rétention sur plusieurs jours. C'est votre filet de sécurité ultime.
- Support réactif : une équipe technique capable d'intervenir rapidement en cas d'incident, disponible 24/7 pour les situations critiques.
Les hébergeurs managés WordPress comme WP Engine, Kinsta ou Flywheel vont plus loin avec des mises à jour automatiques du coeur WordPress, un WAF intégré, un scanning de malware proactif et un environnement de staging inclus pour tester vos modifications avant de les mettre en production. Le coût supplémentaire est souvent justifié par le temps économisé en administration et la tranquillité d'esprit.
3. Configuration initiale sécurisée
Dès l'installation, plusieurs paramètres doivent être configurés pour réduire la surface d'attaque de votre WordPress. Ces mesures sont simples à mettre en place mais font une différence significative.
Dans votre fichier wp-config.php, ajoutez ces constantes essentielles :
// Désactiver l'éditeur de fichiers dans l'admin
define('DISALLOW_FILE_EDIT', true);
// Forcer SSL pour l'administration
define('FORCE_SSL_ADMIN', true);
// Clés de sécurité uniques (régénérer régulièrement)
// Utilisez https://api.wordpress.org/secret-key/1.1/salt/ Désactiver l'éditeur de fichiers intégré est crucial : si un attaquant obtient un accès administrateur à votre WordPress, il ne pourra pas modifier directement le code PHP de vos thèmes et plugins depuis l'interface. Cela l'empêche d'installer des backdoors facilement.
Les permissions de fichiers sont également cruciales pour la sécurité de votre installation :
- Répertoires : 755 (rwxr-xr-x) — le propriétaire peut lire, écrire et exécuter ; les autres ne peuvent que lire et exécuter
- Fichiers : 644 (rw-r--r--) — le propriétaire peut lire et écrire ; les autres ne peuvent que lire
- wp-config.php : 600 (rw-------) ou 640 — seul le propriétaire peut y accéder. Ce fichier contient vos identifiants de base de données et vos clés de sécurité.
Changez également le préfixe par défaut des tables de la base de données. Au lieu de wp_, utilisez un préfixe aléatoire comme xk7f_. Cela complique les attaques par injection SQL qui ciblent les noms de tables standards.
4. Authentification et gestion des accès
Les attaques par force brute représentent la majorité des tentatives d'intrusion sur WordPress. Chaque jour, des millions de combinaisons login/mot de passe sont testées automatiquement sur les pages wp-login.php et xmlrpc.php du monde entier.
Voici les mesures essentielles pour protéger l'accès à votre administration :
- Mots de passe forts : minimum 16 caractères avec un mélange de lettres majuscules et minuscules, chiffres et symboles. Utilisez un gestionnaire de mots de passe (Bitwarden, 1Password) pour générer et stocker des mots de passe uniques pour chaque site.
- Authentification à deux facteurs (2FA) : obligatoire pour tous les administrateurs et éditeurs. Même si un mot de passe est compromis, l'attaquant ne pourra pas se connecter sans le second facteur d'authentification.
- Limitation des tentatives de connexion : bloquer temporairement les adresses IP après 5 tentatives échouées. Le plugin Limit Login Attempts Reloaded fait cela efficacement.
- Renommer la page de connexion : changer
/wp-admin/et/wp-login.phppar une URL personnalisée pour déranger les bots automatisés qui ciblent ces chemins par défaut. - Désactiver XML-RPC : sauf si vous utilisez l'application mobile WordPress ou Jetpack, XML-RPC est un vecteur d'attaque inutile. Désactivez-le complètement.
- Principe du moindre privilège : n'attribuer que les permissions strictement nécessaires à chaque utilisateur. Un rédacteur n'a pas besoin d'être administrateur.
5. Plugins et thèmes : les bonnes pratiques
Les plugins et thèmes vulnérables sont le vecteur d'attaque numéro un sur WordPress. En 2024, plus de 96% des vulnérabilités WordPress signalées provenaient de plugins tiers. Le coeur de WordPress lui-même est relativement sécurisé ; ce sont les extensions qui introduisent le plus de risques.
Règles essentielles pour minimiser les risques :
- Sources de confiance : n'installez que des plugins depuis le dépôt officiel WordPress.org ou des éditeurs reconnus (Yoast, WooCommerce, etc.). Évitez les plugins « nulled » (crackés) qui contiennent presque toujours des malwares.
- Vérification avant installation : vérifiez la date de dernière mise à jour (évitez les plugins non mis à jour depuis plus de 6 mois), le nombre d'installations actives, la note des utilisateurs et la réactivité du développeur sur le forum de support.
- Suppression des inutilisés : supprimez (pas seulement désactivez) les plugins que vous n'utilisez plus. Un plugin désactivé reste présent sur le serveur et ses fichiers peuvent contenir des vulnérabilités exploitables.
- Thèmes inactifs : supprimez tous les thèmes inactifs sauf le thème par défaut (Twenty Twenty-Five) qui sert de fallback en cas de problème avec votre thème actif.
- Mises à jour rapides : mettez à jour dès que possible quand un correctif de sécurité est publié. Les vulnérabilités divulguées publiquement sont exploitées dans les heures qui suivent leur publication.
- Nombre minimum : moins vous avez de plugins, moins vous avez de surface d'attaque. Évaluez régulièrement si chaque plugin est vraiment nécessaire.
Pour un comparatif des meilleurs plugins de sécurité, consultez notre article sur les 10 plugins de sécurité essentiels.
6. Pare-feu et protection applicative
Un pare-feu applicatif web (WAF) est une couche de protection essentielle qui filtre le trafic malveillant avant qu'il n'atteigne votre site WordPress. Il analyse chaque requête HTTP et bloque celles qui correspondent à des patterns d'attaque connus.
Il existe deux types de WAF, chacun avec ses avantages :
- WAF au niveau plugin (Wordfence, Sucuri) : s'exécute directement sur votre serveur, au sein de WordPress. Il a accès au contexte complet de l'application et peut détecter des attaques très spécifiques. L'inconvénient est qu'il consomme les ressources de votre serveur.
- WAF cloud (Cloudflare, Sucuri CDN) : filtre le trafic dans le cloud, avant qu'il n'atteigne votre serveur. Très efficace contre les attaques DDoS car le trafic malveillant n'arrive jamais jusqu'à votre infrastructure. Inclut généralement un CDN pour améliorer les performances.
L'idéal est de combiner les deux approches pour une protection en profondeur : un WAF cloud en première ligne pour absorber les attaques volumétriques et un WAF applicatif sur le serveur pour les attaques plus ciblées.
7. Stratégie de sauvegarde
Les sauvegardes sont votre dernière ligne de défense absolue. Quand tout le reste échoue — quand votre site est compromis, quand une mise à jour casse tout, quand un plugin efface des données — c'est la sauvegarde qui vous sauve. Sans sauvegarde, un incident peut signifier la perte totale de votre site.
La règle d'or des sauvegardes est la règle 3-2-1 :
- 3 copies de vos données : la version en production et au moins deux sauvegardes
- 2 types de support différents : par exemple, le serveur et un service cloud (Google Drive, Amazon S3, Dropbox)
- 1 copie hors site : stockée dans un autre datacenter ou chez un autre fournisseur, pour se protéger contre les sinistres majeurs
Fréquence recommandée pour un site professionnel :
- Base de données : sauvegarde quotidienne (contient tout votre contenu, vos paramètres et vos utilisateurs)
- Fichiers : sauvegarde hebdomadaire (thèmes, plugins, uploads)
- Sauvegarde complète : mensuelle (archivage complet pour rétention longue durée)
Point critique souvent négligé : testez la restauration de vos sauvegardes au moins une fois par trimestre. Une sauvegarde que vous ne pouvez pas restaurer ne vaut rien. Trop d'administrateurs découvrent que leurs sauvegardes sont corrompues ou incomplètes au moment où ils en ont le plus besoin.
8. Surveillance et détection
La détection précoce est la clé pour limiter les dégâts d'un incident de sécurité. Plus vous détectez une intrusion rapidement, moins les dommages seront importants. Idéalement, vous devez être alerté avant même que l'attaquant n'ait eu le temps de faire des dégâts significatifs.
Mettez en place ces mécanismes de surveillance :
- Monitoring d'uptime : un service externe (UptimeRobot, Pingdom) qui vérifie toutes les 5 minutes que votre site est accessible. Une indisponibilité inexpliquée peut être le signe d'une attaque.
- Alertes sur les modifications de fichiers : surveillez les modifications sur les fichiers critiques (wp-config.php, .htaccess, index.php). Toute modification non autorisée est un signal d'alarme.
- Journal d'activité : enregistrez toutes les connexions, modifications de contenu, installations de plugins, changements de paramètres. En cas d'incident, ces logs sont essentiels pour comprendre ce qui s'est passé.
- Scans de sécurité automatiques : des scans quotidiens pour détecter les malwares, les fichiers modifiés et les vulnérabilités connues.
- Google Search Console : activez les alertes de sécurité. Google détecte souvent les sites compromis et peut vous avertir avant que vous ne le remarquiez vous-même.
9. Réagir en cas d'incident
Malgré toutes les précautions, un incident de sécurité peut toujours survenir. Avoir un plan de réponse préparé à l'avance fait toute la différence entre une résolution rapide et une crise qui s'éternise. Voici la procédure à suivre :
- Isolez le site : mettez-le en mode maintenance ou bloquez l'accès pour empêcher la propagation du problème et protéger vos visiteurs.
- Documentez : faites des captures d'écran, sauvegardez les logs, notez tout ce que vous observez d'anormal. Ces informations seront précieuses pour l'analyse.
- Identifiez le vecteur d'attaque : quel plugin était vulnérable ? Quel compte a été compromis ? Comment l'attaquant est-il entré ?
- Restaurez une sauvegarde saine : restaurez la dernière sauvegarde d'avant la compromission. Vérifiez qu'elle n'est pas elle-même compromise.
- Mettez tout à jour : WordPress, tous les plugins, tous les thèmes. Corrigez la vulnérabilité qui a été exploitée.
- Changez tous les mots de passe : WordPress, FTP, base de données, panneau d'hébergement, cPanel. Régénérez les clés de sécurité dans wp-config.php.
- Scannez en profondeur : vérifiez que le site est propre avec un scanner de malware. Les attaquants laissent souvent des backdoors pour revenir.
- Renforcez les mesures : mettez en place les protections manquantes qui auraient pu prévenir l'incident.
10. Checklist de sécurité WordPress
Pour terminer ce guide, voici une checklist pratique qui résume tous les points essentiels. Imprimez-la ou sauvegardez-la comme référence pour vos audits de sécurité réguliers :
- WordPress, thèmes et plugins à jour (vérifier au moins chaque semaine)
- PHP 8.1 ou supérieur sur le serveur
- HTTPS forcé sur toutes les pages et dans l'administration
- Mots de passe forts (16+ caractères) + 2FA pour tous les admins
- Éditeur de fichiers désactivé dans wp-config.php
- Permissions correctes des fichiers (755/644/600)
- WAF actif (plugin et/ou cloud)
- Sauvegardes automatiques testées (règle 3-2-1)
- Plugins et thèmes inutilisés supprimés (pas juste désactivés)
- Monitoring d'uptime et alertes configurés
- Journal d'activité activé et consulté régulièrement
- Clés de sécurité uniques et régénérées périodiquement
La sécurité WordPress n'est pas un état final à atteindre, c'est un processus continu d'amélioration. Les menaces évoluent constamment, les nouvelles vulnérabilités sont découvertes chaque jour, et les techniques d'attaque deviennent de plus en plus sophistiquées.
Intégrez les pratiques décrites dans ce guide à votre routine de maintenance hebdomadaire pour garder votre site protégé. 30 minutes par semaine consacrées à la sécurité et à la maintenance, c'est un investissement négligeable comparé au coût d'un site piraté : perte de données, perte de confiance des utilisateurs, pénalités SEO de Google, et potentiellement des conséquences juridiques en cas de fuite de données personnelles.