Sécuriser WordPress : guide de hardening pratique pour agences et entreprises
Si votre objectif est de sécuriser WordPress pour un site client ou une plateforme d’entreprise, ce guide complet vous donne une démarche concrète et priorisée. Vous y trouverez un modèle de threat model simple, des actions techniques (hébergement, accès, fichiers, extensions), des recommandations opérationnelles (sauvegardes, monitoring, playbooks) et des exemples concrets applicables dès aujourd’hui.
Pourquoi sécuriser WordPress maintenant
WordPress alimente une part importante du web : sa popularité en fait une cible privilégiée pour les attaques automatisées (bots, brute force), l’exploitation de vulnérabilités dans des extensions et les compromissions via des identifiants faibles. Sécuriser WordPress réduit le risque d’indisponibilité, protège les données clients et limite les coûts et la perte de réputation en cas d’incident.
Pour une agence ou un service informatique, sécuriser WordPress signifie aussi industrialiser des pratiques reproductibles (playbooks, scripts, checklist) pour déployer des sites sûrs et pouvoir répondre rapidement en cas d’incident.
Menaces courantes et modélisation simple
Principales menaces
- Brute force sur les pages de connexion
- Exploitation de vulnérabilités dans les plugins et thèmes
- Accès administrateur via identifiants compromis
- Injection (file upload malveillant) ou inclusion de code (backdoors)
- Attaques DDoS ciblant la disponibilité
- Accès non autorisé au serveur via des services mal configurés
Threat model simplifié
Pour prioriser, segmentez selon :
- Actifs critiques : base de données, comptes admin, fichiers media
- Adversaires probables : bots automatisés, script kiddies, concurrents malveillants
- Impact potentiel : fuite de données, perte de SEO, site defacé, interruption
Cette modélisation détermine vos priorités : empêcher l’accès admin, limiter l’impact d’une extension compromise et assurer une restauration rapide.
Hébergement et serveur : première barrière
La sécurité commence par le choix et la configuration de l’hébergement. Pour un service professionnel, préférez un hébergement qui propose :
- Isolation forte entre clients (containers, comptes séparés)
- Accès SSH sécurisé, avec clé publique et désactivation de l’authentification par mot de passe
- Mises à jour automatiques du système d’exploitation ou patching rapide
- Fonctions réseau avancées : WAF, filtrage IP, protection anti-DDoS
Exemple concret : pour un site client, demandez au fournisseur l’activation de la gestion des clés SSH et vérifiez les politiques de sauvegarde et de restauration.
Pour des recommandations de maintenance et patching, consultez notre article sur la maintenance WordPress proactive, qui détaille les routines de surveillance et patching indispensables.
Mises à jour, plugins et thèmes : règles strictes
Principes
- Mettre à jour WordPress core dès que possible, après validation en pré-production.
- Limiter le nombre d’extensions : retirez celles qui ne sont plus nécessaires.
- Vérifier la réputation et la fréquence de maintenance d’une extension avant installation.
Processus recommandé
- Maintenir un site de staging reflétant production.
- Appliquer les mises à jour sur staging, exécuter les tests fonctionnels et de sécurité.
- Déployer sur production via un processus contrôlé (CI/CD ou procédure manuelle documentée).
Si vous concevez un thème personnalisé, appliquez les bonnes pratiques du développement sécurisé : revue de code, linters et tests. Notre guide sur le thème WordPress sur-mesure aborde la qualité de code et l’accessibilité, deux sujets complémentaires de la sécurité.
Gestion des accès et authentification
Principes clefs
- Principe du moindre privilège : attribuez le rôle le plus restreint nécessaire.
- Ne partagez jamais des comptes administrateurs entre utilisateurs.
- Utilisez l’authentification forte : 2FA ou SSO pour les environnements d’entreprise.
Implémentation concrète
Pour les agences, privilégiez l’accès via comptes clients séparés et limitez la création d’utilisateurs administrateurs. Intégrez un fournisseur d’identité (SSO SAML / OIDC) pour les environnements multi-utilisateurs si possible.
Activez 2FA pour tous les comptes disposant de privilèges d’édition ou d’administration. Pour les intégrations externes (API, webhook), générez des clés dédiées et surveillez leur usage.
Fichiers, permissions et wp-config
Permissions
Assurez des permissions de fichiers strictes : par défaut, les fichiers PHP ne doivent pas être modifiables par le serveur web si ce n’est pas nécessaire. Exemples courants :
- Fichiers : 644
- Répertoires : 755
- wp-config.php : 600 ou 640 selon l’environnement
Ces valeurs varient selon la configuration du serveur (utilisateur propriétaire et groupe). Documentez la configuration standard de votre stack et automatisez l’application des permissions via des scripts d’infrastructure.
Protéger wp-config.php
Déplacez éventuellement le fichier wp-config.php hors de la racine web si votre environnement le permet. Masquez les erreurs PHP en production et stockez les identifiants sensibles (clés, mots de passe) dans un gestionnaire de secrets ou des variables d’environnement plutôt que dans le dépôt de code en clair.
Réseau : WAF, SSL, CDN et sécurité périphérique
SSL/TLS
Forcez HTTPS via HSTS et configurez TLS moderne. Évitez les anciennes suites cryptographiques et surveillez les certificats pour éviter les expirations inattendues.
WAF et filtrage
Un Web Application Firewall (WAF) bloque une grande partie des attaques automatisées et des tentatives d’injection. Activez les règles OWASP de base et adaptez les règles spécifiques à WordPress (protection des endpoints /wp-login.php, xmlrpc.php etc.).
CDN
Un CDN réduit la charge et apporte des protections additionnelles contre les DDoS. Configurez le CDN pour cacher correctement les ressources et pour transmettre les en-têtes clients réels (X-Forwarded-For) si nécessaire pour les logs et la géolocalisation des incidents.
Sauvegardes, tests de restauration et plan de reprise
Stratégie de sauvegarde
Une stratégie 3-2-1 est recommandée : 3 copies des données sur 2 types de supports au moins, 1 copie hors site. Pour WordPress, sauvegardez :
- La base de données (dump régulier)
- Les fichiers applicatifs et media
- Les configurations serveur et scripts d’automatisation
Tester les restaurations
Une sauvegarde qui n’a jamais été testée n’est pas fiable. Planifiez des exercices trimestriels de restauration sur un environnement de staging pour vérifier la procédure et le temps de restauration.
Documentez et mesurez le RTO (Recovery Time Objective) et le RPO (Recovery Point Objective) acceptables pour chaque site client.
Surveillance, audit et playbook d’incident
Monitoring essentiel
- Logs web (accès et erreurs) centralisés
- Alertes sur tentatives de brute force, nouvelles admin users, changements de fichiers critiques
- Vérification d’intégrité des fichiers (hashing) et scan de malware
Playbook d’incident
Pour être efficace, un playbook doit être simple et testé. Exemple de séquence :
- Isoler le site compromis (maintenance mode ou IP block) pour limiter la contamination
- Prendre un snapshot et collecter les logs
- Révoquer les credentials compromis et changer les clés
- Scanner et effacer le code malveillant, restaurer depuis sauvegarde si nécessaire
- Analyser la cause racine et corriger la faille (plugin, credential, serveur)
- Informer le client et documenter l’incident
Notre article d’audit technique peut compléter la phase d’analyse pour identifier des failles plus profondes : audit SEO technique WordPress, qui inclut des vérifications structurelles et de performance utiles lors d’un incident.
Cas particuliers : multisite et CI/CD
Multisite
Un réseau multisite augmente la surface d’attaque : une extension vulnérable peut affecter tous les sites. Évaluez si multisite est nécessaire ou si des installations séparées sont préférables selon le niveau d’isolation requis. Pour une comparaison détaillée, voir notre dossier sur WordPress multisite vs installations séparées.
CI/CD et déploiements
Intégrez la sécurité dans votre pipeline : linting, scan des dépendances, secrets scanning et tests automatisés avant déploiement. N’exposez pas de secrets dans les variables publiques et utilisez un gestionnaire de secrets pour les clés d’accès.
Checklist actionnable & plan sur 30/60/90 jours
30 jours — actions prioritaires
- Activer 2FA pour tous les admin et les éditeurs
- Vérifier et appliquer les permissions de fichiers
- Configurer sauvegardes automatiques et tester une restauration
- Mettre en place des protections basiques : WAF, HTTPS
60 jours — durcissement
- Mettre en place un environnement de staging et intégrer les mises à jour dans le workflow
- Scanner les plugins et retirer les extensions obsolètes
- Centraliser les logs et définir les alertes critiques
90 jours — industrialisation
- Automatiser les tests (intégration, sécurité) dans le pipeline
- Documenter et tester le playbook d’incident
- Former les équipes et les clients sur les bonnes pratiques (mots de passe, accès)
Pour les agences, formalisez ces étapes dans vos contrats de maintenance et vos offres de support. La maintenance WordPress proactive couvre plusieurs des éléments décrits ici et peut servir de base à vos SLA.
Conclusion actionnable
Pour sécuriser WordPress efficacement, priorisez l’hébergement sécurisé, la gestion stricte des accès, la réduction de la surface d’attaque (moins d’extensions, code propre), des sauvegardes testées et un playbook d’incident opérationnel. Démarrez par les actions immédiates (2FA, permissions, sauvegardes) puis industrialisez les contrôles via staging et CI/CD. Enfin, entraînez vos équipes : la sécurité est un processus continu, pas une case à cocher.
Plan d’action recommandé pour les 7 prochains jours :
- Activer 2FA et forcer des mots de passe robustes pour tous les comptes admin.
- Vérifier et verrouiller les permissions de fichiers et protéger wp-config.php.
- Mettre en place des sauvegardes quotidiennes et tester une restauration.
FAQ
1. Quelle est la première action à mener pour sécuriser un site WordPress ?
Commencez par activer l’authentification à deux facteurs pour les comptes sensibles et assurez-vous que des sauvegardes récentes existent et ont été testées.
2. Faut-il désactiver XML-RPC ?
Si vous n’utilisez pas les fonctionnalités qui reposent sur xmlrpc.php (applications mobiles, certains plugins), il est conseillé de le désactiver ou de le filtrer pour réduire la surface d’attaque.
3. Comment gérer les plugins tiers ?
Évaluez la maintenance et la réputation du plugin, limitez le nombre d’extensions et testez les mises à jour en staging avant déploiement en production.
4. Quel est le rôle du WAF dans la stratégie de sécurité ?
Le WAF bloque la majorité des attaques automatisées et règle les comportements anormaux avant qu’ils n’atteignent l’application, ce qui réduit fortement le bruit et le risque d’exploitation.
5. Que faire après la détection d’une compromission ?
Isoler le site, collecter les preuves (logs), révoquer les accès compromis, restaurer depuis une sauvegarde fiable si nécessaire, puis analyser la cause racine et corriger les vulnérabilités identifiées.
6. Le multisite est-il moins sûr ?
Le multisite augmente la surface d’attaque car une seule faille peut affecter tous les sites du réseau. Évaluez l’isolation nécessaire et comparez avec des installations séparées selon vos priorités. Notre article sur multisite vs installations séparées fournit des critères pour choisir.
7. Dois-je automatiser les mises à jour ?
Automatiser les mises à jour du core et des extensions peut réduire le risque d’exploitation, mais il faut impérativement disposer d’un environnement de test et d’un plan de rollback si un update casse des fonctionnalités.
En savoir plus sur Webosfere
Subscribe to get the latest posts sent to your email.
