Sécuriser son site WordPress

le

Introduction

WordPress a historiquement eu une assez mauvaise réputation en matière de sécurité. Cependant, un peu de contexte est nécessaire pour aider à cadrer l’image avec précision. WordPress est actuellement confortablement installé au sommet du paysage des CMS avec une part de marché de 64,7 % en avril 2021. La deuxième place revient actuellement à Shopify avec 5,4 %. En fait, WordPress détient presque le double de la part de marché des 90 plateformes les plus populaires combinées. Il y a beaucoup de sites WordPress et cela signifie en fin de compte qu’il y a beaucoup de sites WordPress qui intéressent les « mauvais acteurs » (le type de cybersécurité, pas le type Hollywood).

Il existe également un grand nombre de sites WordPress dans la nature qui s’appuient sur des thèmes ou des plugins prêts à l’emploi pour alimenter des parties clés, voire la totalité, du site Web. C’est souvent là qu’une situation problématique peut survenir. En compromettant un thème ou un plugin largement utilisé, un attaquant peut potentiellement obtenir les clés d’un certain nombre de sites, ce qui explique pourquoi ces thèmes et plugins peuvent être une cible attrayante.

Le revers de la médaille est qu’il y a un grand nombre de développeurs dans la communauté WordPress et que, WordPress étant un logiciel libre, les correctifs de sécurité sont déployés extrêmement rapidement dès la découverte d’une quelconque vulnérabilité. Au moment de la rédaction du présent document, la dernière version de WordPress comptait 481 contributeurs individuels pour cette seule version.

En conclusion, si vous créez un site Web basé sur WordPress en utilisant un frontal sur mesure et en gardant WordPress lui-même et tous les plugins à jour, vous êtes entre de bonnes mains. Cependant, il y a d’autres choses à surveiller. Voici donc une liste de conseils pour sécuriser un site Web WordPress :

Utilisez un pare-feu d’application Web (WAF)

Tout comme vous avez un logiciel antivirus sur votre ordinateur, c’est une bonne idée d’avoir une sorte de pare-feu sur votre serveur. La plupart des hébergeurs gérés, tels que Infomaniak ou WP Engine, proposent une sorte de WAF. Si vous gérez votre propre serveur, vous pouvez utiliser quelque chose comme Cloudflare ou Sucuri pour gérer votre pare-feu avant que les requêtes n’atteignent votre serveur (ils ont tous deux une offre spécifique à WordPress) ou si la modification de vos paramètres DNS pour passer par l’un de ces services est un problème, une alternative côté serveur comme WordFence peut toujours être efficace.

Modifier les chemins par défaut

Bien que le concept général de sécurité par l’obscurité ne rende pas votre logiciel lui-même plus sûr, il peut contribuer à vous protéger contre les attaques automatisées. Bien que nous pensions que le piratage d’un site Web soit le fait d’une personne devant un ordinateur qui choisit un site Web particulier et se met au travail pour le compromettre, la vérité est que la grande majorité des attaques sont automatisées. Des outils et des robots scannent l’internet à la recherche de sites web qui utilisent des logiciels présentant des vulnérabilités connues.

De simples changements tels que la modification de l’URL de connexion par défaut, l’installation de WordPress dans un sous-répertoire de sorte que les chemins d’accès à l’arrière-plan se situent à un niveau plus profond que lors d’une installation standard ou le déplacement du fichier de configuration principal de WordPress peuvent souvent signifier que les outils automatisés n’identifient tout simplement pas le site comme utilisant WordPress ou ne lancent pas les outils d’analyse car ils s’attendent à des chemins différents.

Chez beeside, nous avons opté pour la solution Bedrock de Roots. Cette solution permet de s’abstraire de certaines contraintes concernant la mise à jour des plugins ou des templates sur un site WordPress en passant par Composer. Cela permet également d’alléger de manière conséquente votre dépôt Git, si vous en utilisez un.

Pour finir, cette solution permet de mieux gérer les différents environnements que vous déciderez de mettre en place, afin de vérifier les nouvelles fonctionnalités qui seront développées durant la vie de votre projet WordPress.

Maintenir les versions de PHP à jour

Historiquement, PHP avait un calendrier de publication lent. Les choses ont changé ces dernières années et les versions de PHP arrivent maintenant à un rythme soutenu, apportant des améliorations en termes de vitesse, de stabilité et surtout de sécurité. Il est généralement assez simple de s’assurer que vous utilisez une version récente de PHP et cela vaut la peine d’investir du temps pour avoir l’esprit tranquille.

Mettez en œuvre l’authentification à deux facteurs (2FA)

L’authentification à deux facteurs consiste à confirmer une tentative de connexion en envoyant un code (généralement à une adresse électronique ou à un appareil mobile) ou en générant un code via une application d’authentification telle que Google Authenticator ou encore Twilio Authy lorsqu’une tentative de connexion est effectuée. Il s’agit d’une couche de sécurité supplémentaire par rapport au nom d’utilisateur et au mot de passe, qui garantit que même si le nom d’utilisateur et le mot de passe sont volés ou compromis ailleurs, un attaquant n’aura pas besoin d’accéder à votre adresse électronique ou à votre appareil mobile.

Il existe un certain nombre de solutions 2FA disponibles pour WordPress, en fonction des besoins spécifiques.

Limitez les tentatives de connexion

En limitant le nombre de fois qu’un utilisateur peut tenter de se connecter, vous pouvez considérablement ralentir les efforts d’un attaquant. Limiter le nombre de tentatives de connexion à environ 3-5 par heure est généralement un bon équilibre entre la sécurité et la prise en compte de l’erreur humaine.

Utilisez HTTPS et imposez son utilisation partout

En installant un certificat SSL valide sur le serveur de votre site, vous pouvez le servir en toute sécurité via une connexion HTTPS. Cela garantit que toutes les données envoyées entre le site web et l’utilisateur sont cryptées, ce qui protège contre les attaques de type « man-in-the-middle » qui peuvent conduire au vol de mots de passe ou de données de formulaires.

L’avantage supplémentaire d’une connexion HTTPS est que vous pouvez également servir le site Web et ses ressources par le biais d’une connexion HTTP/2, ce qui permet de livrer les ressources plus rapidement et plus efficacement au navigateur de l’utilisateur et, par conséquent, d’améliorer la vitesse du site Web.

HTTPS est également un facteur de classement confirmé dans l’algorithme de score de page de Google.

Il est important de s’assurer qu’une connexion HTTPS est forcée sur le site Web une fois que vous avez mis en place un certificat SSL. Ceci est généralement configuré via votre serveur web (NGINX ou Apache en général).

Désactivez l’éditeur de fichiers intégré disponible pour les administrateurs connectés

WordPress est livré avec un éditeur intégré qui permet aux administrateurs de modifier les fichiers de thème. En autorisant l’utilisation de cet éditeur, si quelqu’un obtient l’accès à un compte d’administration, il peut ajouter son propre code au site dans le tableau de bord d’administration de WordPress sans jamais avoir à accéder au serveur lui-même. Cet éditeur devrait toujours être désactivé.

En outre, la plupart des sites Web devraient utiliser une sorte de contrôle de version, tel que Git. Autoriser l’édition de fichiers directement sur le serveur web entrerait en conflit avec le site à contrôle de version, ce qui causerait des problèmes lors du déploiement de nouvelles versions du site.

Maintenez WordPress et tous ses plugins à jour

On ne saurait trop insister sur l’importance de maintenir à jour tout logiciel fonctionnant sur votre site Web. Une fois qu’une vulnérabilité est apparue dans la nature, il est important de s’assurer que vous êtes protégé. Heureusement, WordPress et la plupart des plugins réputés sont bien entretenus et corrigés, et tant que vous avez un bon calendrier de mise à jour en place, par exemple toutes les deux semaines, vous pouvez réduire considérablement le risque d’être compromis.

Un mot sur la sécurité et son impact sur le référencement

L’effet d’entraînement d’un site compromis peut être un coup dur dans le classement des moteurs de recherche. Cela peut se produire pour plusieurs raisons :

Conclusion

En prenant quelques mesures, WordPress peut être un système de gestion de contenu très sûr et fiable. Nous avons un certain nombre de sites WordPress à notre actif et nous avons une grande confiance dans notre manière de gérer cette plateforme et dans WordPress en général.

Si vous gérez un site Web et que vous pensez que la sécurité pourrait être un problème, nous vous suggérons de travailler avec une agence qui peut faire ce travail en votre nom. En tant qu’experts en développement WordPress et PHP, nous sommes bien placés pour vous recommander l’environnement le plus adapté à votre projet.

Découvrez d'autres actualités de superbees