WPLake > Carrefour d'apprentissage > Sécuriser votre WordPress : 5 éléments essentiels pour protéger votre site
  • English
  • Deutsch
  • Español
  • Italiano

Sécuriser votre WordPress : 5 éléments essentiels pour protéger votre site

Protégez votre site web en modifiant l'URL de connexion, en désactivant l'API REST non autorisée, la navigation dans les répertoires, l'accès au dossier .git et xmlrpc.php.

Les points clés en un coup d'œil

  1. Vérification des thèmes et des plugins : Vérifiez les thèmes et les plugins avant de les installer pour éviter les risques de sécurité ; préférez le téléchargement à partir du dépôt officiel de WordPress ou de sources fiables.
  2. Modification de l'URL de connexion et du captcha : sécurisez WordPress contre les attaques par force brute en modifiant l'URL de connexion et en ajoutant un captcha à la page de connexion à l'aide de plugins tels que WPS Hide Login et hCaptcha.
  3. Désactivation de l'API REST pour les utilisateurs non autorisés : Empêchez l'accès non autorisé aux noms d'utilisateur en désactivant l'API REST pour les utilisateurs non autorisés tout en garantissant la fonctionnalité pour les éditeurs et les administrateurs autorisés.
  4. Désactivation de la navigation dans les répertoires : Désactivez la navigation dans les répertoires pour empêcher les pirates d'accéder aux structures de fichiers et de trouver des failles dans les plugins et les thèmes.
  5. Interdire l'accès au dossier .git : Protégez le code source de votre site web en interdisant l'accès au dossier .git, couramment utilisé par les développeurs, par le biais de la configuration du serveur.
  6. Interdire l'accès au fichier xmlrpc.php : Sécuriser WordPress contre les attaques par force brute des mots de passe en interdisant l'accès au fichier xmlrpc.php, qui constitue un point d'entrée pour les attaquants.

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.

Cet article a-t-il été utile ?

Totalement inutile

Légèrement utile

Très utile

Mode FAQ

/

Mode d'apprentissage

  1. Comment puis-je partager en toute sécurité des mots de passe avec des développeurs tiers ?

    Créez des comptes distincts pour les développeurs et changez le mot de passe une fois les tâches terminées afin de maintenir la sécurité.

  2. Pourquoi est-il essentiel de vérifier les thèmes et les plugins avant de les installer ?

    La vérification des thèmes et des plugins permet de s'assurer qu'ils proviennent de sources fiables, ce qui réduit le risque de failles de sécurité et de violations.

  3. Quelles mesures puis-je prendre pour empêcher les attaques par force brute sur ma page de connexion WordPress ?

    La modification de l'URL de connexion et l'ajout d'un captcha à la page de connexion à l'aide de plugins tels que WPS Hide Login et hCaptcha peuvent décourager les attaques par force brute.

  4. Comment puis-je protéger les informations sensibles, telles que les noms d'utilisateur, contre l'accès par des utilisateurs non autorisés ?

    La désactivation de l'API REST pour les utilisateurs non autorisés empêche l'accès aux noms d'utilisateur tout en maintenant la fonctionnalité pour les utilisateurs autorisés.

  5. Pourquoi est-il important de désactiver la navigation dans les répertoires sur mon site WordPress ?

    La désactivation de la navigation dans les répertoires empêche les pirates d'accéder aux structures de fichiers et de trouver des failles dans les plugins et les thèmes.

  6. Quelles mesures puis-je prendre pour protéger le code source de mon site web lorsque j'utilise GIT en production ?

    Le fait d'interdire l'accès au dossier .git par le biais de la configuration du serveur garantit la sécurité du code source.

  7. Comment puis-je renforcer la sécurité de WordPress en interdisant l'accès à des fichiers spécifiques ?

    Le fait d'interdire l'accès à des fichiers tels que xmlrpc.php empêche les attaquants d'accéder à des points d'entrée potentiels, ce qui renforce la sécurité globale du site web.

Navigation dans les cours: Compétences WordPress

Liens de contenu (13)

A propos de l'auteur

Maxim Akimov

Certified WordPress expert from Ukraine with over 8 years of experience. Advocate of the BEM methodology and the overall modular approach. Loves sporting activities and enjoys going to the gym and regularly plays table tennis.

0 Commentaires

    Laisser un commentaire

    Répondre à 

    Veuillez faire preuve d'attention lorsque vous laissez un commentaire.

    Pas d'affichage public

    Got it