Après un sondage sur Linkedin vous avez été nombreux à voter pour un article sur le sujet de la sécurité sur WordPress.
Le sujet est très vaste et aux risques de te perdre et parce qu’il faut bien commencer quelque part… J’ai décider de te parler plus précisément de la sécurité autour de l’accès au back office !
En effet l’accès au back office de WordPress n’est pas infaillible, à toi de mettre en place des mesures pour l’améliorer.
On se retrousse les manches et on attaque dans le vif du sujet…
Comment protéger son URL de connexion à wp-admin ?
Quand on a une installation fraîche de WordPress ce n’est pas un mystère, pour ce connecter à l’admin il suffit d’ajouter /wp-admin/ à la fin de notre URL (exemple https://ludwig-you.fr/ devient https://ludwig-you.fr/wp-admin/).
Bon le souci tu le vois venir… Les malandrins qui voudraient tenter de forcer votre administration, n’ont même pas à chercher votre URL de connexion.
J’ai même vu des sites sous Symfony ce faire spammer l’URL /wp-admin/ c’est vous dire les hackers ne font pas dans la dentelle, ils attaquent en masse point.
Protéger l'URL de connexion à l'administration via un plugin
Pour déplacer l’URL d’accès à l’administration et ainsi la protéger il vous suffit d’installer et de configurer WPS Hide Login.
1. Installation de WPS Hide Login
Par WPServeur, NicolasKulka, wpformation
Installer et activer le plugin WPS Hide Login depuis le back office de WordPress.
2. Rends toi dans Réglages / WPS Hide Login
Aller dans Réglages / WPS Hide login afin d’accéder au seul réglage du plugin.
Une fois dans les réglages, changer l’URL proposée (normalement « login » par défaut).
Je te recommande d’éviter les URL facilement trouvable comme « login » ou « connexion ».
Comment bien choisir son identifiant administrateur ?
Pourquoi interdire certains noms d'utilisateur ?
Par défaut WordPress autorise tous les noms d’utilisateurs, mais il faut éviter d’utiliser des noms comme :
- www
- admin
- administrator
- …
Ces noms pourraient être utilisés pour se faire passer pour un membre du staff, ou encore tromper le système. De plus si votre identifiant est admin il est fort probable qu’un hacker puisse le deviner rapidement.
Comment interdire les mauvais noms d'utilisateur ?
Pour interdire des mauvais noms d’utilisateurs tu peux copier-coller le code suivant dans votre function.php.
Voici désormais ce que vous verrez lorsque vous voudrez ajouter un nom d’utilisateur interdit.
Comment bien choisir son mot de passe ?
Selon la CNIL (La Commission Nationale de l’Informatique et des Libertés), un bon mot de passe doit contenir au moins :
- Un chiffre
- Une majuscule
- Un signe de ponctuation ou un caractère spécial (dollar, dièse, …)
- Une douzaine de caractères
J’ajouterais de ne pas utiliser de mot de passe lisible comme « c0c@_c0l@ »… On peut se croire malin mais il existe des bases de données de millions de mots de passe courant qui peuvent permettre de brut forcer tes sites.
Comment créer un mot de passe fort pour votre compte administrateur ?
Via mon générateur de mot de passe
Tu peux ci-dessous générer un mot de passe fort à utiliser pour tes comptes utilisateurs :
Via le générateur de mot de passe de WordPress
Lors de la création d’un utilisateur tu as un petit bouton Générer un mot de passe qui te permet de créer un mot de passe fort en un clic.
S’il te plaît ne cocher jamais la case Confirmer l’utilisation du mot de passe faible.
Comment limiter le nombre de tentative de connexion à mon site ?
Une personne mal attentionné essayera très certainement de se connecter à plusieurs reprises sur ton administration.
Pour bloquer les multiples tentatives de connexion je te propose de passer par le plugin Limit Login Attempts Reloaded.
Limit Login Atempts Reloaded arrête les attaques par force brute et optimise les performances de votre site en limitant le nombre de tentatives de connexion possibles via la connexion normale ainsi que XMLRPC, Woocommerce et les pages de connexion personnalisées.
1. Installation de Limit Login Attempts Reloaded
Par Limit Login Attempts Reloaded
Installer et activer le plugin Limit Login Attempts Reloaded depuis le back office de WordPress.
2. Configuration de Limit-Login-Attempts-Reloaded
Aller dans Limit Login Attempts Reloaded, puis dans la section paramètres.
Ici tu peux configurer tes paramètres pour verrouiller l’accès aux personnes un peut trop insistance avec le formulaire de connexion.
Comment installer un système de double authentification sur WordPress ?
Il existe plusieurs systèmes de double authentification.
Un système de double authentification vous permettra d’augmenter considérablement la sécurité de votre administration WordPress.
Pour cet article je t’ai sélectionné Two Factor Authentication.
1. Installation de Two Factor Authentication
Par David Anderson, original plugin by Oskar Hane and enhanced by Dee Nutbourne
Installer et activer le plugin Two Factor Authentication depuis le back office de WordPress.
2. Configuration de Two-Factor-Authentication
Rends toi dans Auth. à deux facteurs :
Active le système d’authentification et enregistre les modifications :
3. Téléchargement de l'application mobile
Télécharger l’application mobile Google Authenticator, qui te permettra de générer des codes uniques pour la double authentification :
4. Scanner avec l'application de google le QR code dans le back office
Dans l’application mobile, clique sur le + en bas à droite pour scanner le QR code présent dans le back office :
5. Test de connexion
Rends toi en navigation privée (pour éviter de se déconnecter de l’admin en cas de soucis avec le système). Et fait une tentative de connexion… Désormais une étape supplémentaire à été ajouté pour ajouter le code présent dans ton app Google Authenticator :
Et tu n’as plus qu’à rentrer le code avant que le compte à rebours se termine et cliquer sur Se connecter :
Cacher les erreurs d'authentification
Pourquoi cacher les erreurs d'authentification ?
Par défaut WordPress donne des informations précieuses pour les hackers en cas d’erreur de mot de passe ou de login. Supprimer ces messages d’information ou du moins les rendre beaucoup plus flou permet de limiter les risques d’infiltration.
Comment cacher les erreurs d'authentification ?
Pour cacher les messages d’erreurs d’authentification lors de la connexion, copie-colle le code suivant dans ton function.php, tu n’auras plus de message clair de l’erreur ainsi tu ne donnes plus d’indice aux personnes mal intentionnés.
Voici ce que cela donne une fois le code copié :
Empêcher WordPress d'énumérer les utilisateurs
WordPress par défaut énumère les utilisateurs, dont les administrateurs. Pour voir si votre site énumère les utilisateurs tu peux te rendre sur l’URL suivante (remplace exemple.com par ton nom de domaine) : https://exemple.com/wp-json/wp/v2/users
Ici nous pouvons déduire le nom d’utilisateur de l’administrateur ici « Ludwig ».
Pourquoi empêcher WordPress d'énumérer les utilisateurs ?
Tu l’as probablement déjà compris, mais le fait d’afficher publiquement les noms des utilisateurs n’est vraiment pas terrible surtout quand il s’agit des admins… Une personne mal attentionnée peut ainsi très facilement récupérer l’identifiant de connexion des administrateurs.
Comment ne plus énumérer les utilisateurs publiquement ?
Pour empêcher l’énumération des utilisateurs aux personnes sur l’api wp-json de WordPress, copier-coller le code suivant dans votre function.php.
[\d]+)'])) {
unset($endpoints['/wp/v2/users/(?P[\d]+)']);
}
return $endpoints;
});
Voici, désormais, ce que l’on verra sur l’URL :
NB : Il existe d’autres méthodes pour bloquer l’énumération des utilisateurs.
Changer les clés de salage
Les clés de sécurité SALT (ou clé de salage) de WordPress sont un outil de cryptage qui aide à sécuriser la connexion de ton site WordPress.
Plus précisément, elles sécurisent l’information dans les cookies que WordPress utilise pour te connecter.
Elles sont situé dans le fichier wp-config.php de ton installation WordPress.
As-tu besoin de changer tes Salt WordPress et tes clés de sécurité ?
De plus, changer vos sels déconnectera automatiquement tous les utilisateurs connectés sur votre site et les forcera à se reconnecter, ce qui est un autre avantage potentiel. Par exemple, si vous vous êtes accidentellement connecté avec un ordinateur public et que vous avez oublié de vous déconnecter, cela vous permettrait de forcer la déconnexion de ce compte pour vous assurer que personne ne puisse y avoir accès.
Lors de l’installation de WordPress, des clés de salage sont déjà présentes.
Le concept de base est qu’en changeant périodiquement tes clés et tes sels, tu rends encore plus difficile pour une personne malveillante de mettre la main sur tes sels.
De plus, changer tes sels déconnectera automatiquement tous les utilisateurs connectés sur ton site et les forcera à se reconnecter.
Comment changer tes clés de salage ?
Changer ses clés de salage manuellement
Pour changer manuellement tes clé de salage, rends toi sur l’API WordPress suivante : https://api.wordpress.org/secret-key/1.1/salt/
Une fois sur l’URL, copie les clés visible qui vienne d’être générer et colle les à la place des anciennes
Changer ses clés de salage automatiquement, via un plugin (recommandé)
Il existe plusieurs extensions qui peuvent le faire, notamment la plupart des extensions de sécurité.
Je vais t’en présenter une seul ici, Salt Shaker.
Tu n’as qu’à suivre les étapes suivantes…
1. Installation de Salt Shaker
Par Nagdy
Il faudra installer et activer le plugin Salt Shaker depuis le back office de WordPress.
2. Configuration de Salt Shaker
Une fois que tu as installé et activé le plugin, vas sur Outils → Salt Shaker.
Si tu veux, tu peux changer manuellement tes sels tout de suite, clique simplement sur le bouton Change Now.
Puis idéalement règle une fréquence par exemple toutes les semaines.
Conclusion
L’accès administrateur de WordPress donne beaucoup de droit et de capacités, il faut le protéger au maximum des personnes mal intentionnées.
Les points abordées améliorons considérablement votre protection, mais il s’agit ici que d’une partie de la sécurité sous WordPress.
Restes attentif, j’essayerais de publier d’autres articles pour compléter mes propos sur le sujet de la sécurité.
Un autre article est déjà disponible sur le sujet de la sécurité, plus particulièrement sur la faille XMLRPC.