Les 5 essentiels : faites-les en premier
- Maintenez à jour le cœur de WordPress, les thèmes et les plugins. Les plugins vulnérables sont le vecteur d'attaque numéro 1. Activez les mises à jour automatiques des versions mineures (WordPress 5.6+ le fait par défaut). Pour les versions majeures, mettez à jour dans les 7 jours suivant la sortie. Pour les plugins, activez la mise à jour automatique de ceux de confiance ; relisez manuellement les notes de version des plugins critiques.
- Utilisez des mots de passe forts et uniques pour chaque compte WordPress. Surtout ceux d'administrateur. Utilisez un gestionnaire de mots de passe (1Password, Bitwarden). Désactivez le nom d'utilisateur « admin » : créez un nouvel administrateur et supprimez l'ancien.
- Activez l'authentification à deux facteurs. Utilisez Wordfence Login Security (gratuit) ou notre Générateur de QR 2FA avec n'importe quelle application TOTP. La 2FA déjoue plus de 99 % des attaques par bourrage d'identifiants.
- Installez un plugin de sécurité de confiance. Wordfence (la version gratuite suffit pour la plupart des sites) ou Solid Security. N'en empilez pas plusieurs : ils entrent en conflit. Le plugin gère la limitation des tentatives de connexion, la surveillance de l'intégrité des fichiers et l'analyse des malwares.
- Sauvegardes quotidiennes hors site. UpdraftPlus → Dropbox/Google Drive. Faites la sauvegarde avant d'en avoir besoin. Testez le processus de restauration au moins une fois.
Les 10 suivantes : mesures supplémentaires à fort impact
- Forcez le HTTPS. Let's Encrypt est gratuit sur tout hébergement moderne. Redirigez HTTP vers HTTPS au niveau du serveur.
- Changez le préfixe des tables de la base de données. WordPress utilise wp_ par défaut ; remplacez-le par quelque chose de personnalisé lors de l'installation. Cela n'empêche pas les attaques, mais complique certains schémas d'attaque.
- Désactivez XML-RPC si vous ne l'utilisez pas. XML-RPC est un vecteur courant d'amplification de la force brute. Si vous n'utilisez pas l'application mobile de Jetpack ni la publication à distance, désactivez-le via .htaccess ou un plugin.
- Limitez les tentatives de connexion. Wordfence le fait automatiquement. Cela évite le bourrage d'identifiants par force brute.
- Faites tourner les clés/salts d'authentification de WordPress. Utilisez notre Générateur de Salts WordPress. Faites-les tourner après toute suspicion de compromission, après avoir supprimé un administrateur compromis et tous les 6 à 12 mois de façon routinière.
- Utilisez SSH ou SFTP pour transférer les fichiers, jamais le FTP en clair. Le FTP transmet les identifiants en texte clair.
- Restreignez l'accès à wp-admin par IP si possible. Si votre équipe utilise des IP fixes (bureau, VPN), limitez wp-admin à ces seules IP. Via .htaccess ou la configuration de Nginx.
- Désactivez l'édition de fichiers dans wp-config.php. Ajoutez :
define('DISALLOW_FILE_EDIT', true);Cela empêche les attaquants d'éditer les thèmes/plugins depuis le tableau de bord s'ils compromettent un compte. - Masquez le numéro de version de WordPress. Supprimez la balise meta generator. Cela n'empêche pas les attaques, mais réduit le fingerprinting.
- Verrouillez les permissions des fichiers. Fichiers en 644, répertoires en 755, wp-config.php en 600. La plupart des hébergements infogérés le font automatiquement ; sur un VPS, configurez-le explicitement.
Peaufinage : bon mais pas critique
- URL de connexion personnalisée (p. ex. WPS Hide Login). Réduit surtout le bruit du trafic de bots ; ce n'est pas une vraie sécurité.
- CAPTCHA sur les formulaires de connexion. Une légère friction pour les attaques automatisées.
- Désactivez l'exécution de PHP dans /uploads/. Empêche l'exécution des shells PHP téléversés.
- Utilisez le WAF de Cloudflare (niveau gratuit). Filtre le trafic malveillant avant qu'il n'atteigne votre serveur.
- Configurez une alerte par e-mail à l'administrateur pour les mises à jour de plugins/cœur.
- Utilisez le préchargement HSTS pour forcer le HTTPS au niveau du navigateur.
- Désactivez l'énumération des utilisateurs via l'API REST (Solid Security ou Wordfence s'en chargent).
- Utilisez des en-têtes de Politique de Sécurité du Contenu (CSP).
- Désactivez la navigation dans les répertoires (la plupart des hébergeurs le font par défaut).
- Surveillez la disponibilité + l'intégrité avec un service externe (niveau gratuit d'UptimeRobot + Sucuri SiteCheck hebdomadaire).
- Limitez les rôles d'utilisateur au moindre privilège. La plupart des contributeurs n'ont pas besoin d'un accès de niveau éditeur.
- Chiffrement des sauvegardes de la base de données (UpdraftPlus Premium le propose).
- Hébergement des images hors du domaine via un CDN (réduit la surface d'attaque).
- Revue périodique du journal d'audit de sécurité.
- Test d'intrusion annuel si le site génère des revenus significatifs.
Mythes de sécurité WordPress : ignorez-les
Plusieurs mesures de « sécurité » très recommandées offrent une protection réelle minime : (1) « Masquer la version de WordPress » : connaître votre version aide légèrement les attaques ciblées, mais la vraie solution est de mettre à jour, pas de masquer. (2) « Déplacer wp-config.php au-dessus de public_html » : apporte essentiellement zéro bénéfice de sécurité ; le fichier est déjà protégé par .htaccess. (3) « Désactiver l'API REST » : casse de nombreux plugins et bloque peu de choses. Limitez plutôt des endpoints spécifiques. (4) « Empiler plusieurs plugins de sécurité » : ils entrent en conflit et se chevauchent. Un plugin de confiance (Wordfence ou Solid Security) couvre ce que feraient trois plugins. (5) « Renommer wp-login.php » : sécurité par l'obscurité ; les attaquants trouvent facilement la nouvelle URL via les redirections.
Si vous avez été piraté : liste de récupération
- Ne paniquez pas ; ne supprimez rien immédiatement. Prenez d'abord un instantané de l'état actuel pour l'analyse forensique.
- Mettez le site hors ligne (plugin de mode maintenance ou redirection .htaccess vers une page statique).
- Changez tous les mots de passe administrateur et faites tourner les salts de WordPress.
- Auditez les comptes utilisateur : supprimez immédiatement les comptes administrateur non reconnus.
- Analysez à la recherche de malwares avec Wordfence Premium ou Sucuri.
- Comparez les fichiers actuels à un téléchargement propre de WordPress : le diff révèle les fichiers du cœur modifiés.
- Examinez la table wp_options de la base de données à la recherche d'entrées inattendues (elle contient souvent du JS injecté).
- Restaurez à partir de la sauvegarde propre la plus récente (c'est pour cela que les sauvegardes quotidiennes comptent).
- Une fois restauré, auditez chaque plugin : supprimez les inutilisés, mettez-les tous à jour et remplacez tout plugin présentant des CVE publiques.
- Mettez à jour le cœur de WordPress vers la dernière version.
- Réactivez le site et surveillez la réinfection pendant 30 jours.