Sécuriser votre site WordPress est crucial pour le protéger contre les hackers et les malwares. Un site WordPress non sécurisé peut être facilement compromis, entraînant des problèmes comme le spam, les attaques de hameçonnage et le référencement noir par Google. Heureusement, il existe plusieurs étapes clés que vous pouvez suivre pour verrouiller la sécurité de votre WordPress.
1. Utilisez un mot de passe fort
La première étape consiste à utiliser un mot de passe fort pour votre compte administrateur WordPress. Votre connexion admin contrôle l’ensemble du site, il est donc le plus critique à protéger. Voici quelques conseils de mots de passe:
- Minimum 12 caractères
- Mélange de majuscules, minuscules, chiffres et symboles
- Évitez les mots communs ou les phrases
- N’utilisez pas d’informations personnelles
- Unique pour chaque site
- Utilisez un gestionnaire de mots de passe
Activez l’authentification à deux facteurs si possible pour une couche de sécurité supplémentaire en plus de votre mot de passe.
2. Limitez les tentatives de connexion
Les attaques par force brute sont très courantes sur WordPress. Pour l’empêcher, installez un plugin comme Login LockDown qui limite le nombre de tentatives à partir d’une seule adresse IP. Après un certain nombre d’échecs de connexion, cette IP sera verrouillée. Cela rend les attaques par force brute beaucoup plus difficiles.
Configurez le plugin pour verrouiller les adresses IP après 6 tentatives infructueuses, pour une durée de 60 minutes. Cochez la case pour verrouiller après une combinaison d’échecs d’utilisateur et de mot de passe. Cela empêche les attaques qui essayent plusieurs noms d’utilisateur avec un seul mot de passe.
3. Changez le nom d’utilisateur admin par défaut
Les hackers ciblent largement le nom d’utilisateur admin par défaut sur WordPress. Changez-le pour un nom non standard qui ne sera pas deviné.
Quelques bonnes façons de créer un nom d’utilisateur admin sécurisé incluent:
- Chaîne aléatoire de chiffres / lettres
- Phrase ou série de mots assemblés
- Préfixe / suffixe ajouté à un nom d’utilisateur courant
Évitez tout ce qui vous identifie personnellement ou est lié au nom de votre site.
4. Utilisez un fournisseur d’hébergement solide et des informations complexes
Choisir un fournisseur avec une expertise dans WordPress et la sécurité:
- Utilise une infrastructure de niveau entreprise
- Offre une protection DDoS
- Surveille proactivement les menaces
- Fournit des certificats SSL
- Gère les mises à jour et les correctifs
- Durcit les configurations
- Sauvegarde régulièrement votre site
Les informations d’identification de votre compte d’hébergement Web protègent l’accès au serveur de votre site. Utilisez les mêmes pratiques de mots de passe sécurisés que pour votre connexion WordPress:
- Mot de passe long et complexe
- Unique pour chaque compte d’hébergement
- Faites-le pivoter périodiquement
Activez également l’authentification à deux facteurs au niveau de l’hôte si disponible.
Assurez-vous également de modifier les informations d’identification par défaut qui ont pu être prédéfinies avec votre forfait d’hébergement.
5. Installez des plugins de sécurité
Les plugins fournissent des moyens supplémentaires de verrouiller WordPress au-delà de ce qui est disponible en standard. Voici quelques plugins de sécurité incontournables:
Wordfence
Wordfence offre un pare-feu de niveau entreprise, des analyses de logiciels malveillants, le blocage d’IP malveillantes connues et la journalisation d’audit pour les modifications. C’est le plugin de sécurité le plus complet disponible.
Fonctionnalités clés:
- Pare-feu bloquant les menaces en temps réel
- Analyse des logiciels malveillants pour les vulnérabilités
- Surveillance des connexions / du trafic
- Surveillance de la réputation des adresses IP
- Blocage par pays
- Authentification à deux facteurs configurable
iThemes Security
iThemes Security facilite la mise en œuvre de nombreuses bonnes pratiques de sécurité de base dans un seul plugin. Il «durcit» le site avec des fonctionnalités telles que:
- Modification des chemins par défaut
- Désactivation de l’éditeur de fichiers
- Forcer les mots de passe forts
- Blocage proactif des bots / scrapers
- Analyses de logiciels malveillants Sucuri
- Journalisation des actions utilisateur
Cela amène WordPress au-delà de ses paramètres par défaut pour réduire davantage les vulnérabilités.
Wordfence et iThemes Security ensemble fournissent une base de sécurité robuste. La protection pare-feu et anti-logiciels malveillants de Wordfence combinée au durcissement et aux protections supplémentaires d’iThemes fait une combinaison imbattable.
6. Limitez les plugins
Trop de plugins inutiles peuvent ralentir les performances de votre site et augmenter les vulnérabilités. Chaque plugin étend votre surface d’attaque, en particulier ceux qui sont mal codés, non mis à jour ou ajoutent plus de comptes de connexion.
Auditez régulièrement les plugins sur votre site. Supprimez ceux qui ne sont pas essentiels, comme les plugins inactifs ou ceux avec un usage minimal.
Pour ceux que vous gardez, maintenez-les à jour:
- Gardez les à jour
- Vérifier les avis des plugins
- Rechercher les vulnérabilités
- Utiliser des sources fiables comme WordPress.org
Limitez également l’utilisation de plugins premium commerciaux, qui peuvent avoir des problèmes de sécurité non divulgués. Si possible, choisissez des alternatives open source gratuites qui sont plus transparentes.
7. Mots de passe utilisateur forts
Les comptes utilisateur que vous créez pour les visiteurs / abonnés de votre site doivent également suivre les bonnes pratiques en matière de mots de passe.
Obligez-les à utiliser des mots de passe sécurisés en appliquant ces règles:
- 12 caractères minimum
- Ne peut pas contenir le nom d’utilisateur ou l’e-mail
- Doit avoir des chiffres, des symboles, des majuscules
- Forcer la réinitialisation au premier login
- Empêcher la réutilisation précédente
Cela minimise les attaques par force brute sur les comptes utilisateur.
Vous pouvez appliquer des mots de passe plus robustes pour les utilisateurs avec un plugin comme Force Strong Passwords.
8. Sécurisez wp-config.php
Le fichier wp-config.php contient les informations d’identification de la base de données et les clés. Il peut être utilisé pour accéder s’il est accessible publiquement.
Il existe quelques façons de verrouiller ce fichier:
- Déplacez-le au-dessus de la racine Web afin qu’il ne soit pas accessible par le Web
- Mettre à jour les autorisations de fichier en lecture seule
- Bloquer l’accès Web direct via .htaccess
- Désactiver les messages d’erreur PHP révélant les chemins
9. Évitez d’exposer les numéros de version
Par défaut, WordPress expose son numéro de version dans la balise générateur meta, les flux RSS et les points de terminaison de l’API REST. Cela peut aider les attaquants à cibler des vulnérabilités spécifiques connues.
Utilisez un plugin comme Remove Generator Tag pour supprimer les numéros de version des endroits comme:
- wp_head()
- Flux RSS
- Espaces de noms RDF
- API REST
10. Utilisez SFTP plutôt que FTP
Lors de la gestion de vos fichiers WordPress, utilisez toujours SFTP plutôt que FTP régulier. SFTP est crypté pour le transfert sécurisé des fichiers tandis que FTP envoie tout en texte brut.
SFTP contribue à empêcher l’sniffing des informations d’identification ou des fichiers pendant les transferts. Assurez-vous que votre hébergeur offre un accès SFTP comme option préférée plutôt qu’un FTP non crypté.
11. Salts uniques
Les sels WordPress fournissent une certaine randomisation aux hachages pour protéger les mots de passe et les cookies. Les sels par défaut doivent être personnalisés par site pour une sécurité renforcée.
Installez un plugin comme Unique Salts pour générer de nouveaux sels uniques. Mettez ensuite à jour votre wp-config.php avec les sels personnalisés. Cela empêche d’exposer les valeurs par défaut communes.
12. Désactivez l’exécution PHP
Certains serveurs permettent l’exécution de code PHP téléchargé pour des éléments comme les miniatures de pièces jointes. Cela peut conduire à des vulnérabilités d’exécution de code arbitraire.
Si possible, désactivez les privilèges d’exécution PHP dans wp-config.php:
// Désactiver l'exécution de code PHP
define( 'DISALLOW_FILE_MODS', true );
Vérifiez également avec votre hébergeur pour désactiver les privilèges d’exécution PHP au niveau du serveur lorsque cela n’est pas nécessaire.
13. Utilisez HTTPS partout
Activez HTTPS sur l’ensemble du site et redirigez tout le trafic HTTP vers HTTPS pour chiffrer les connexions. Cela protège les informations d’identification et les données contre l’interception sur des réseaux Wi-Fi non sécurisés.
Le plugin really simple SSL facilite l’activation du SSL en gérant tout comme l’obtention de certificats et la configuration de WordPress. Il suffit de l’installer, de l’activer et d’activer la redirection HTTPS automatisée.
14. Limitez l’accès
Réduisez ce que les visiteurs peuvent faire sur votre site en limitant l’accès uniquement à ce qui est nécessaire. Par exemple:
- Désactiver XML-RPC si non utilisé pour les applications mobiles ou l’API
- Désactiver les points de terminaison de l’API REST si non nécessaire
- Désactiver le hotlinking d’images pour empêcher le vol de bande passante
- Désactiver l’indexation des répertoires non publics comme wp-admin
- Bloquer les e-mails sortants pour réduire le potentiel de spam
Moins il y a d’options disponibles à exploiter, mieux c’est. Désactivez tout élément superflu qui peut exposer des vecteurs d’attaque.
15. Utilisez Recaptcha
reCAPTCHA bloque les bots et autres nuisances d’Internet pour interagir avec votre site. Son installation protège contre les attaques automatisées par force brute, les inscriptions spam et autres activités malveillantes.
Obtenez des clés reCAPTCHA pour votre site et configurez-le pour sécuriser:
- Les formulaires de connexion
- Les formulaires d’inscription
- Les formulaires de réinitialisation de mot de passe
- La section des commentaires
Cela oblige les humains à passer un test de validation rapide avant de soumettre des données, limitant ainsi les bots et le trafic abusif.
16. Changez le préfixe de base de données par défaut
Le préfixe de table de base de données WordPress par défaut wp_ indique de façon évidente le logiciel que vous utilisez. Rendez cela opaque en changeant pour un préfixe personnalisé comme:
- Lettres / chiffres aléatoires
- Nom de marque ou initiales
- Nom du projet
Mettez à jour wp-config.php avec votre préfixe personnalisé. Cela rend un peu plus difficile pour les attaquants de cibler spécifiquement WordPress dans votre base de données.
17. Évitez la duplication de contenu
Les scrapers et les voleurs de contenu ciblent les sites WordPress avec des problèmes de contenu en double. Évitez de copier du contenu entre les sites de staging ou de dupliquer des articles / pages.
Empêchez également l’indexation de tous les sites de développement ou de staging publiquement. Gardez-les derrière l’authentification jusqu’à ce qu’ils soient prêts à être lancés.
Le contenu en double signale des opportunités de scraping et fait paraître votre site de moindre qualité. Produisez un contenu original et limitez les copies.
18. Utilisez des thèmes / plugins de confiance
Le téléchargement de thèmes / plugins aléatoires à partir de n’importe où vous expose à du code compromis injecté avec des logiciels malveillants.
Restez sur des dépôts respectés comme WordPress.org pour les thèmes et les plugins où les soumissions sont vérifiées. Évitez les logiciels nullés ou les options piratées qui présentent un risque élevé.
Recherchez également l’auteur et les avis pour identifier des plugins réputés provenant de développeurs de confiance.
19. Limitez les utilisateurs admin
Réduisez le nombre d’utilisateurs disposant d’un accès administrateur uniquement à ceux qui en ont légitimement besoin. Évitez d’assigner le rôle administrateur librement.
Créez des rôles à permissions inférieures pour les utilisateurs généraux comme Éditeur, Auteur ou Contributeur. Ils peuvent afficher / mettre à jour une partie du contenu mais sans privilèges complets.
Moins il y a d’admins, moins il y a de chances qu’un compte compromis ne prenne le contrôle de tout. Révoquez les autorisations admin chaque fois que possible en utilisant le rôle le plus bas nécessaire.
20. Supprimez les thèmes / plugins par défaut
WordPress est installé avec des thèmes par défaut (Twenty *) et plusieurs plugins de démarrage activés par défaut.
Ces valeurs par défaut couramment ciblées fournissent des vecteurs d’attaque si elles sont laissées intactes. Éliminez ce dont vous n’avez pas besoin:
- Changer le thème par défaut
- Supprimez les thèmes inutilisés
- Désinstallez les plugins de démarrage
- Supprimez le plugin Hello Dolly
Moins vous en avez d’actifs, plus votre surface d’attaque est petite.
21. Protégez le dossier des téléchargements
Le dossier wp-content/uploads contient tous les fichiers téléchargés par les utilisateurs. Il est régulièrement ciblé pour l’injection de logiciels malveillants ou de scripts exécutables.
Verrouillez-le en:
- Définissant des autorisations strictes de 755
- Empêchez l’indexation avec robots.txt
- Bloquez l’exécution PHP
Utilisez également un plugin comme Secure Copy Protection pour ajouter un durcissement .htaccess qui bloque l’exécution de PHP / JS dans les téléchargements.
22. Personnalisation de l’écran de connexion
Gardez les URL de connexion et d’administration obscures en personnalisant l’écran de connexion:
- Changer le /wp-login par défaut
- Utilisez un chemin complètement aléatoire
- Masquez-le derrière une fausse page 404
Cela rend plus difficile pour les hackers de trouver et de cibler votre zone de connexion.
23. Prudence avec les comptes Contributeur
Permettre aux utilisateurs contributeurs leur permet encore potentiellement de compromettre votre site. Limitez ce que les contributeurs peuvent faire:
- Modérez et passez en revue tous les messages
- Désactiver l’accès JSON API
- Restreindre les publications autorisées par heure
- Limiter la taille / le type de téléchargement
Les contributeurs ne devraient se concentrer que sur le contenu, la gestion du site étant effectuée uniquement par les administrateurs. Passez en revue attentivement leurs autorisations.
24. Mettez tout à jour
L’exécution de logiciels obsolètes est une invitation aux problèmes de sécurité.
Restez à jour des mises à jour:
- WordPress core
- Thèmes
- Plugins
- Version PHP
- Tout autre logiciel du site
Abonnez-vous aux notifications de mise à jour de votre hébergeur et activez les mises à jour automatiques si possible. Vérifiez également manuellement régulièrement s’il y a des correctifs à appliquer.
25. Désactiver l’affichage du répertoire
L’affichage du répertoire fournit un index complet de tous les fichiers dans des dossiers comme wp-includes et wp-content. Cela révèle des chemins et des noms de fichiers sensibles qui feraient mieux d’être cachés.
Désactivez l’affichage du répertoire dans .htaccess
:
Options -Indexes
Demandez également à votre hébergeur de le désactiver au niveau du serveur pour une sécurité renforcée contre l’espionnage.
26. Gérez les sessions utilisateur
Gardez les sessions utilisateur aussi courtes que possible et faites pivoter fréquemment les ID de session.
Ajoutez ceci à wp-config.php:
define('AUTH_COOKIE_LIFETIME', 172800); // 48 heures
define('AUTH_REFRESH', true);
define('AUTH_SALT', 'phrase complexe');
Cela invalide les sessions après 48 heures et attribue un sel unique par site pour des ID de session plus solides.
Envisagez également d’utiliser un plugin comme Manage WP Worker pour une gestion plus granulaire des sessions utilisateur.
27. Politique de sécurité du contenu
Une politique de sécurité du contenu (CSP) restreint les ressources que les navigateurs peuvent charger à partir de votre site. Cela atténue les attaques par injection de scripts intersites.
Le plugin officiel CSP configure une politique stricte désactivant les pratiques dangereuses comme:
- JavaScript inline
- Scripts intégrés
- Cadres
- Flash
Cela limite les scripts externes et l’exécution de code uniquement aux sources autorisées que vous définissez.
28. Analyses régulières
Exécutez des analyses de sécurité approfondies mensuellement ou plus souvent pour détecter les vulnérabilités ou les codes malveillants. Cela permet d’identifier les problèmes à traiter de manière proactive au lieu d’après avoir été piraté.
- Sucuri SiteCheck – Surveillance gratuite des logiciels malveillants et des listes noires
- Analyses de sécurité Wordfence – Pare-feu, logiciels malveillants et intégrité des fichiers
- Analyses de sécurité iThemes – Large détection de vulnérabilités
Corrigez immédiatement les problèmes trouvés et refaites des analyses régulièrement. N’ignorez pas les avertissements.
29. Sécurisez les sauvegardes de base de données
La sauvegarde de votre base de données WordPress est essentielle. Mais assurez-vous également de sécuriser correctement les sauvegardes:
- Chiffrez avec un mot de passe
- Utilisez SFTP pour transférer
- Excluez wp-config.php des sauvegardes
- Stockez les sauvegardes chiffrées hors serveur
- Limitez les périodes de rétention des sauvegardes
Cela maintient vos données, utilisateurs et paramètres en sécurité en cas de compromission.
30. Désactiver l’édition de fichiers
Comme mentionné précédemment, l’éditeur de fichiers dans WordPress permet de modifier des plugins et des thèmes directement depuis l’écran d’administration. C’est très dangereux d’un point de vue sécurité.
Des plugins comme WP Force Disable File Editor ne se contentent pas de supprimer l’accès – ils désactivent complètement l’éditeur de fichiers dans l’ensemble de WordPress.
Pour un maximum de sécurité, forcez la désactivation de l’éditeur de fichiers dans toutes les zones de WordPress.
31. Limitez la mémoire PHP
La limite de mémoire PHP détermine la quantité de données qu’un script peut utiliser. Trop élevé, et cela peut permettre des attaques DDoS et des plantages du système.
Réduisez la limite de mémoire dans wp-config.php:
define( 'WP_MEMORY_LIMIT', '64M' );
Travaillez également avec votre hébergeur pour définir des plafonds de mémoire PHP au niveau du serveur adaptés à votre site.
32. Désactiver les pingbacks
Les pingbacks permettent des notifications entre blogs lorsqu’ils sont liés. Cela peut conduire à des attaques d’amplification et surcharger votre site.
Il est recommandé de désactiver les pingbacks XML-RPC si vous n’en avez pas besoin:
// Désactiver les pingbacks
add_filter( 'xmlrpc_methods', function( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
} );
33. Masquez les rapports d’erreurs
Par défaut, WordPress affiche les erreurs qui peuvent fournir des informations sur votre environnement et votre code.
Désactivez les rapports d’erreurs dans wp-config.php:
// Désactiver les rapports d'erreurs
ini_set('display_errors', 0);
Et envisagez d’installer un plugin comme Remove Error Reporting qui élimine tous les avis d’erreur existants.
34. Atténuation de la force brute
Les attaques par force brute qui essayaient d’innombrables combinaisons nom d’utilisateur et mot de passe sont monnaie courante pour WordPress. L’utilisation de plugins en combinaison aide à contrecarrer:
- Limite les tentatives de connexion
- Loginizer pour les blocages temporaires
- Plugins captcha comme reCAPTCHA
- Clés de sécurité comme Google Authenticator
- Plugins de détection VPN pour bloquer les emplacements malveillants
- Pare-feu Wordfence pour le blocage en temps réel
La combinaison d’atténuations de force brute garantit une protection maximale même en cas d’attaques intensives.
35. Clés de sécurité obligatoires
Pour une authentification utilisateur plus robuste, exigez des clés de sécurité en plus des mots de passe. Cela utilise une vérification en deux étapes via des applications d’authentificateur, SMS ou jetons matériels.
Avec un plugin comme Google Authenticator, activez les codes obligatoires générés par l’application lors de la connexion pour tous les types d’utilisateurs. Ne le rendez pas facultatif.
L’authentification à deux facteurs obligatoire bloque l’accès non autorisé même avec des mots de passe corrects.
36. Changez le chemin wp-includes
Le chemin wp-includes contient des fichiers WordPress core sensibles. Rendez le chemin opaque pour le cacher aux yeux indiscrets.
Par exemple, changez wp-includes en quelque chose d’aléatoire comme ‘secure_files’ avec un plugin ou du code personnalisé. Cela sécurise des fichiers comme wp-config loin du public.
37. Désactiver XML-RPC
XML-RPC permet un accès à distance pour administrer WordPress et est souvent exploité par des attaquants. Si vous n’en avez pas besoin, désactivez complètement XML-RPC.
Des plugins comme Disable XML-RPC le font en un clic. Ou utilisez du code comme celui-ci :
add_filter('xmlrpc_enabled', '__return_false');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
Cela casse l’API et limite un vecteur d’attaque sans affecter l’usage normal du site.
38. Mises à jour de sécurité automatiques
Bien que les mises à jour manuelles vous donnent plus de contrôle, l’activation des mises à jour automatiques en arrière-plan pour les versions de sécurité garantit que vous corrigez rapidement en cas de découverte d’une faille.
Utilisez un plugin comme Automatic WP Updates pour activer les mises à jour de sécurité automatiques pour :
- WordPress Core
- Plugins
- Thèmes
Cela garantit que vous exécutez toujours les dernières versions sécurisées sans retard ou sans manquer de vulnérabilité.
Conclusion
Ces conseils représentent les meilleures pratiques essentielles de sécurité WordPress pour durcir n’importe quel site. Mettez en œuvre autant que possible en fonction de vos besoins et de votre tolérance au risque à l’aide des combinaisons de plugins, d’astuces et de techniques décrites ci-dessus.
La sécurité WordPress est un processus continu, nécessitant une vigilance et une adaptation constantes à mesure que les menaces évoluent. Utilisez ces conseils comme une feuille de route, et renforcez-les en fonction de votre propre site, hébergement, trafic et sensibilité des données.
Avec les précautions appropriées, vous pouvez exécuter un site WordPress en toute confiance qui résiste à la grande majorité des attaques de pirates et reste incroyablement difficile à compromettre. Rester à jour et utiliser les dernières protections de sécurité gardera votre site en sécurité dans le futur.