Comment sécuriser un site web WordPress

sécuriser un site WordPress ubuntu debian redhat centos

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.

Laisser un commentaire