5 conseils pour sécuriser WordPress contre les pirates informatiques

Table des Matières
Certaines personnes se sentent paresseuses lorsqu'elles entendent parler de sécurité et ne suivent pas les instructions les plus élémentaires. Bien sûr, tant que leur site web n'est pas piraté. D'autres deviennent fous et verrouillent tout ce qui est possible, ce qui aggrave l'expérience de l'utilisateur. Suivons le juste milieu et protégeons WordPress des menaces les plus fréquentes, sans pour autant devenir paranoïaques. En suivant ces conseils, vous éviterez d'utiliser des plugins de sécurité lourds et coûteux.
Basique pour les débutants
#Ici, je dois dire quelques mots sur des choses très basiques qui sont liées à la sécurité. Les informations suivantes ne sont destinées qu'aux débutants, n'hésitez pas à les sauter si vous vous sentez à l'aise avec les questions de sécurité de base.
Vous devez donc savoir que la plupart des piratages ne sont pas dus à une vulnérabilité dans le code, mais à des erreurs grossières dans l'utilisation du logiciel. Lisez ce que doit savoir un bon développeur WordPress pour comprendre ce que vous devez apprendre pour utiliser WordPress correctement.
Mots de passe
#
1. N'utilisez pas de mots de passe faibles
#Tout mot de passe doit contenir plus de 16 caractères aléatoires, y compris des caractères spéciaux. Les pirates disposent de listes de phrases couramment utilisées et les utilisent dans des attaques par force brute. Ils peuvent facilement accéder à votre panneau d'administration si votre mot de passe n'est pas une chaîne aléatoire. N'utilisez jamais, au grand jamais, de noms ou de mots dans votre mot de passe.
2. ne partagez pas vos mots de passe avec des tiers
#Même avec des développeurs. Si vous avez besoin qu'ils effectuent certains travaux, créez pour eux un compte distinct. Et changez toujours le mot de passe de ce compte une fois qu'ils ont accompli leurs tâches.
3. conserver les mots de passe en lieu sûr
#Écrire sur du papier est une mauvaise idée. Le stockage dans des services en ligne peut également être une mauvaise idée. Le mieux est d'utiliser une application hors ligne. Il existe de nombreux programmes qui permettent de stocker les mots de passe en toute sécurité. Par exemple, notre agence utilise KeePassXC pour conserver toutes les informations d'identification, y compris celles des clients.
4. Ne partagez pas vos mots de passe via des canaux non sécurisés
#Utilisez des canaux sécurisés ou changez le mot de passe peu de temps après l'avoir partagé. Même si vous devez partager un mot de passe avec votre client, demandez-lui de changer le mot de passe après l'avoir reçu. Les canaux Slack ou de messagerie ne sont pas adaptés à cet objectif.
Un canal sécurisé ne signifie pas qu'il est hors ligne. Il peut s'agir de divers services qui fournissent un lien unique, ou même d'un fournisseur de courrier électronique, comme Proton, qui propose des courriels protégés par un mot de passe.
Thèmes et plugins non vérifiés
#
C'est l'erreur la plus courante des débutants. Ils voient combien il y a d'options pour personnaliser un site web et commencent à installer tous les plugins et à essayer tous les thèmes qu'ils peuvent trouver. Généralement, ils préfèrent les plugins gratuits ou nulled (piratés). La plupart de ces plugins contiendront des virus ou des vulnérabilités, c'est le prix de l'accessibilité.
Si nous parlons de plugins gratuits, vous pouvez sécuriser votre WordPress en téléchargeant des plugins UNIQUEMENT à partir du dépôt officiel de WordPress. Ou à partir de l'élément Plugins intégré dans le menu d'administration de WordPress, ce qui revient au même. Vérifiez également le nombre d'installations actives, qui doit être supérieur à 100. Et faites attention à la date de la dernière mise à jour, qui doit remonter à moins d'un an.
Si nous parlons de plugins Pro payants, assurez-vous que vous achetez sur un site officiel, et qu'il y a des critiques indépendantes qui confirment la qualité du plugin. Bien sûr, pas à partir des mots sur leur site web, mais à partir d'autres ressources.
Vérifier les choses avant l'installation est une compétence très importante. Un mauvais thème ou plugin ne rend pas seulement votre site web peu sûr, mais le ralentit également.
5 conseils de pro pour sécuriser WordPress
#1. Changez votre url de connexion et ajoutez un captcha
#La force brute des identifiants de connexion est la pratique la plus courante des pirates. Ils envoient des centaines de requêtes à votre site web via la page de connexion. Même si vous avez un mot de passe fort, cela crée une charge supplémentaire pour votre site web. De plus, si vous êtes un développeur, vous ne pouvez pas garantir que le propriétaire ou ses éditeurs n'utiliseront pas de mots de passe faibles. Cette étape constituera une couche supplémentaire qui protégera les comptes d'administration.
Pour protéger WordPress contre la force brute, nous utilisons le plugin WPS Hide Login pour changer l'url de connexion. Cela peut être fait facilement, et de plus, cela ne changera pas l'url d'administration pour les utilisateurs autorisés. Ainsi, il verrouille seulement wp-admin et wp-login.php pour les utilisateurs non autorisés, les éditeurs et les administrateurs doivent visiter une nouvelle url pour se connecter, et peuvent ensuite utiliser wp-admin ordinaire pour accéder au panneau d'administration.
Vous pouvez utiliser les plugins hCaptcha ou Simple Google Captcha pour ajouter un captcha à la page de connexion. Ces deux plugins fonctionnent bien avec le plugin ci-dessus et ajoutent un captcha via des crochets de code. Cela signifie qu'ils fonctionneront avec n'importe quelle URL de connexion personnalisée. Nous recommandons d'utiliser le plugin hCaptcha, car le service respecte la vie privée des utilisateurs, contrairement à Google Captcha.
Les deux plugins ajoutent le code captcha mais ne créent pas de compte de service pour vous. Vous devez vous inscrire et obtenir des informations d'identification auprès de hCaptcha.com ou de Google ReCaptcha, selon le plugin choisi.
2. désactiver l'API REST pour les utilisateurs non autorisés
#L'API REST permet d'obtenir une liste de noms d'utilisateurs sans problème. Les pirates devront toujours obtenir un mot de passe, mais bon, rendons leur la vie encore plus difficile. De plus, même les noms (usernames) des éditeurs de votre site web peuvent faire partie des informations privées, quel est l'objectif de les partager avec le monde entier ? L'API REST est utilisée dans WordPress par exemple par l'éditeur Gutenberg (et différents plugins), donc la désactiver complètement cassera le travail d'un site web WordPress.
Le juste milieu consiste à désactiver l'API REST pour les utilisateurs non autorisés. Cela ne créera pas de problèmes pour les éditeurs et administrateurs autorisés mais sécurisera WordPress contre les fuites de noms d'utilisateurs vers des sites tiers.
Nous utilisons le plugin Disable REST API pour cet objectif, et par défaut, il est configuré pour désactiver uniquement les utilisateurs non autorisés, de sorte que vous pouvez simplement activer le plugin et ne pas faire d'étapes supplémentaires.
3. désactiver la navigation dans les répertoires
#La navigation dans les répertoires est une fonctionnalité non sécurisée, qui permet de voir une liste de fichiers dans un dossier demandé via le navigateur, dans le cas où le fichier 'index.php' est manquant. Pour trouver des vulnérabilités dans vos plugins et thèmes, les pirates doivent connaître leur structure de fichiers.
WordPress possède le fichier index. php pour tous les dossiers de base, comme /wp-content/, /wp-content/plugins/, et /wp-content/themes/, mais ne peut pas garantir que tous les développeurs de plugins ou de thèmes fassent de même. Pour ce faire, vous devez vous assurer que votre serveur web n'autorise pas la navigation dans les répertoires.
Essayez de visiter YOUR_DOMAIN/wp-includes/ dans votre navigateur. Si vous voyez le message "Not Found", cela signifie que votre serveur ne l'autorise déjà pas, vous pouvez ignorer ce point. Si vous voyez une liste de fichiers, vous devez effectuer des actions supplémentaires pour désactiver la navigation dans les répertoires.
Pour ce faire, nous devons modifier le fichier .htaccess. Je ne recommande pas d'éditer ce fichier via FTP, comme beaucoup d'autres. En effet, ce fichier est régulièrement recréé par de nombreux plugins. Par exemple, tous les plugins de cache ou similaires. Cela signifie que votre modification sera probablement perdue après un certain temps. Nous pouvons ajouter notre modification de manière permanente grâce à l'extrait de code suivant, que vous pouvez ajouter à votre functions.php :
add_filter('mod_rewrite_rules', function ($rules) {
return $rules . "\n" .
"#Disable directory browsing\n" .
"Options -Indexes\n";
});
Visitez ensuite la page Réglages-Permaliens dans votre panneau d'administration, cela forcera WordPress à recréer le fichier .htaccess immédiatement. Ensuite, vous pouvez visiter YOUR_DOMAIN/wp-includes/ à nouveau pour vous assurer qu'il affiche maintenant le message 404 (ce qui est bon).
4. Refuser l'accès au dossier git
#Sautez cette étape si vous utilisez un hébergement simple ou si vous avez téléchargé le site web manuellement, sans GIT.
De nombreux développeurs utilisent GIT, qui est un outil formidable. L'utilisation de GIT en production est également une bonne idée, mais vous devez désactiver l'accès au dossier .git via un navigateur dans ce cas. Sinon, en utilisant le fichier .git/HEAD, ils pourront recréer toute une arborescence de commits et obtenir le code source de votre site web.
Pour ce faire, vous devez verrouiller toutes les requêtes /.git/*. Vous pouvez contacter votre administrateur système ou votre hébergeur. Si vous avez suffisamment de compétences et que votre serveur utilise NGINX, vous pouvez y parvenir en ajoutant le code suivant (à ajouter au fichier de configuration NGINX de votre site web)
# deny access to all special files and folders, like .git, .htaccess
location ~ /\. {
deny all;
}
N'oubliez pas de redémarrer NGINX après cela.
5. Interdire l'accès au fichier xmlrpc.php
#XML-RPC est une ancienne fonctionnalité de WordPress. La plupart des sites web ne l'utilisent pas, et elle n'existe que pour des raisons de compatibilité avec les anciens logiciels. Cette fonctionnalité permet d'interagir avec votre site web directement, sans l'ouvrir dans un navigateur. L'inconvénient est que les pirates peuvent forcer les mots de passe en utilisant cette fonctionnalité, car même si vous avez changé l'url de connexion et ajouté un captcha en suivant les étapes ci-dessus, cette fonctionnalité leur donne toujours la possibilité de vérifier les mots de passe.
Pour interdire l'accès au fichier, vous pouvez contacter votre administrateur système ou votre hébergeur. Si vous avez suffisamment de compétences, vous trouverez ci-dessous des extraits qui vous permettront de le faire :
NGINX
#Si votre serveur utilise NGINX, vous pouvez y accéder en ajoutant le code suivant (à ajouter au fichier de configuration NGINX de votre site web) :
# wordpress xmlrpc
location /xmlrpc.php {
deny all;
}
N'oubliez pas de redémarrer NGINX après cela.
DirectAdmin
#Si votre serveur dispose du panneau de contrôle DirectAdmin, vous pouvez vous connecter à votre serveur par SSH et atteindre l'objectif en exécutant les commandes suivantes ;
// 1. create the custom folder in the directadmin config
cd /usr/local/directadmin/data/templates
mkdir custom/; cd custom
// 2. create the necessary files in the folder and setup rights
touch nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
touch nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
chmod 644 nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
chmod 644 nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 3. enter the edit mode for the new (created) config
nano nginx_server.conf.CUSTOM.4.post
// and and the content below to the file
// this is the rule that will lock the xmlrcp file
location =/xmlrpc.php
{
deny all;
}
// 4. copy the main config to the others
cp -p nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
cp -p nginx_server_secure.conf.CUSTOM.4.post nginx_server_secure_sub.conf.CUSTOM.4.post
cp -p nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 5. make the build
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Conclusions
#Nous avons passé en revue les 5 étapes les plus importantes pour sécuriser WordPress contre le piratage. En fait, les étapes 3 à 5 peuvent être réalisées par un administrateur système (ou un hébergeur) une seule fois et fonctionneront pour tous les sites web de votre compte. Puisque vous les avez effectuées, vous pouvez être sûr d'avoir un très bon niveau de protection, et vous pouvez ne pas acheter de plugins de sécurité, qui sont souvent lourds et ralentissent un site web.