La sécurité WordPress n'est pas une option, c'est une obligation dès qu'un site génère du trafic ou du chiffre d'affaires. Chaque mois, je dépanne plusieurs sites compromis (contenu injecté, redirections malveillantes, boutique dévalisée par un skimmer de carte bancaire) qui auraient pu éviter le pire avec quelques mesures de base, souvent négligées faute de temps ou de connaissance. Voici le guide complet, du plus simple au plus technique.
1. Authentification renforcée
Activez systématiquement l'authentification à deux facteurs (2FA) pour tous les comptes ayant un rôle d'administrateur ou d'éditeur : une extension comme Wordfence ou Two Factor propose une intégration simple avec une application d'authentification. Limitez strictement le nombre de tentatives de connexion (Wordfence, Limit Login Attempts Reloaded), avec bannissement automatique des adresses IP après 3 à 5 échecs. Interdisez également les noms d'utilisateur génériques comme « admin », qui restent la première cible des attaques par force brute automatisées.
2. Hardening des fichiers et de la configuration
Désactivez l'édition de fichiers directement depuis l'interface wp-admin en ajoutant la constante DISALLOW_FILE_EDIT dans wp-config.php : cela empêche un attaquant ayant obtenu un accès admin de modifier directement le code du thème ou d'un plugin. Protégez le fichier wp-config.php lui-même via une règle .htaccess qui en interdit l'accès direct. Appliquez des permissions strictes sur les fichiers (644) et les dossiers (755), et ne laissez jamais un dossier en écriture 777, même temporairement.
3. Gestion rigoureuse des mises à jour
Activez les mises à jour mineures automatiques du cœur WordPress (correctifs de sécurité), qui sont sans risque de casse. Pour les mises à jour majeures et les plugins, prévoyez un test sur un environnement de staging avant application en production. Auditez l'ensemble de vos extensions actives tous les mois : un plugin abandonné depuis plus d'un an sans mise à jour est un risque de sécurité qui augmente avec le temps, et doit être remplacé ou supprimé. Un site avec 40 plugins installés dont 15 inactifs est une porte d'entrée que je referme systématiquement chez mes clients.
4. Pare-feu applicatif et surveillance
Un pare-feu applicatif (WAF) en frontal, comme celui inclus gratuitement dans l'offre de base de Cloudflare, filtre une grande partie du trafic malveillant avant même qu'il n'atteigne le serveur. En complément, Wordfence ou Sucuri assurent un scan antimalware régulier des fichiers du site, avec alerte immédiate en cas de modification suspecte d'un fichier core. Configurez des notifications par email pour toute anomalie détectée : connexion depuis un pays inhabituel, modification de fichier système, pic de trafic anormal.
5. Sauvegardes fiables et testées
Des sauvegardes automatiques externalisées (par exemple UpdraftPlus couplé à un stockage Google Drive ou Amazon S3) doivent tourner au minimum une fois par jour, en incluant à la fois la base de données et les fichiers. La règle 3-2-1 reste la référence : 3 copies des données, sur 2 supports différents, dont 1 hors site. Le point le plus souvent négligé : testez réellement la restauration au moins une fois par trimestre. Une sauvegarde jamais testée est une fausse sécurité.
6. Certificat SSL et en-têtes de sécurité
Le HTTPS doit être actif sur l'ensemble du site sans exception, avec une redirection automatique du HTTP vers le HTTPS. Ajoutez les en-têtes de sécurité recommandés (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options) via la configuration serveur ou une extension dédiée, pour réduire la surface d'attaque contre le cross-site scripting et le clickjacking.
Que faire en cas de compromission
Si le site est déjà compromis, isolez-le immédiatement (mode maintenance, accès restreint), changez tous les mots de passe (admin, FTP, base de données), restaurez depuis une sauvegarde saine antérieure à la compromission si possible, puis identifiez la faille exploitée avant remise en ligne pour éviter une récidive immédiate. Sur les sites que je traite après piratage, la cause est dans 70% des cas un plugin obsolète ou un mot de passe faible.
Commentaires
Aucun commentaire pour l’instant. Le vôtre sera le premier.