Les bonnes pratiques de sécurité sur WordPress

La popularité de WordPress possède ses inconvénients, en particulier concernant la sécurité. De trop nombreux robots peuvent essayer d’accéder aux failles potentielles des sites pour diverses raisons, généralement malsaines. Cet article recense les bonnes pratiques à respecter ainsi que divers plugins tout autant utile (liste non-exhaustive).

Les bonnes pratiques simples à respecter

Pas besoin de faire des efforts démesuré ou d’être un expert informatique pour respecter des bonnes pratiques.

  • Lors de l’installation, n’utilisez pas le préfixe « wp_ » pour les tables de la base de données. Consultez ce tutoriel expliquer comment modifier le préfixe des tables WordPress, si ce CMS a déjà été installé.
  • Supprimer le premier utilisateur.
  • Créer un utilisateur « administrateur » pour effectuer tout ce qui concerne le site, et un utilisateur avec le rôle « rédacteur » pour publier le contenu.
  • Utiliser un mot de passe complexe, car les attaques par brute force sont très fréquentes.
  • Désinstaller tous les thèmes et plugins qui ne sont pas actif. Ce serait dommage de subir une attaque à partir de la faille de sécurité d’un plugin même pas utilisé.
  • Supprimer les utilisateurs inactifs.
  • Bien choisir ses plugins et son thème :
    • Chercher sur une base sûre et fiable.
    • S’assurer que le plugin est un peu connu et maintenu.
    • Faire des recherches pour s’assurer qu’il n’y a pas de mauvaises publicités autour d’un plugin ou un mauvais historique.
    • Utiliser un plugin qui scanne le contenu des fichiers pour vérifier qu’il n’y a pas de virus.
  • Mettre à jour les plugins rapidement s’ils indiquent avoir corrigé une faille de sécurité.
  • Ne pas s’empresser de mettre à jour les plugins s’il n’y a pas d’urgence et qu’il n’y a pas nécessairement de mise à jour de sécurité.
  • Connectez-vous avec SFTP plutôt que FTP.

Bonnes pratiques un peu plus technique

Avec un peu de connaissance technique, il est possible d’aller plus loin dans l’amélioration de la sécurité.

 

Protéger le répertoire /wp-admin/ avec un .htaccess et .htpasswd.

Attention, cela peu aussi bloquer le bon fonctionnement de certains plugins.

Protéger la page de connexion avec un .htaccess pour autoriser les connexions à partir d’une adresse IP exclusivement

Le code ci-dessous est à adapter en indiquant une ou plusieurs adresses IP (à la place des « x ») :

<Files wp-login.php>
order deny,allow
Deny from all
Allow from xx.xxx.xxx.xxx
</Files>

Protéger le fichier wp-config.php avec un .htaccess

Le code ci-dessous peut être utilisé :

<files wp-config.php>
order allow,deny
deny from all
</files>

Protéger le répertoire /wp-content/uploads/ avec un .htaccess pour empêcher l’ajout de fichier « .php »

Un fichier .htaccess peut être ajouté dans le répertoire /wp-content/uploads/. Ce code peut être utilisé pour ce fichier :

<FilesMatch « \.(?:php)$ »>
Order allow,deny
Deny from all
</FilesMatch>

Ne pas afficher les erreurs PHP

Modifier dans wp-config.php :

define (‘WP_DEBUG’, false);

Il convient par ailleurs de s’assurer que l’installation PHP n’affiche pas les erreurs, en ajoutant par exemple cette ligne dans le .htaccess :

php_flag display_errors off

Ne pas afficher le contenu des dossiers de l’hébergement s’il n’y a pas de index.php

Une ligne peut être ajoutée dans le .htaccess pour empêcher l’hébergement d’afficher le contenu des répertoires :

Options –Indexes

A noter : certains hébergeurs ont d’ores et déjà bloqué cet affichage.

Masquer le numéro de version

Voir un tutoriel expliquant comment masquer le numéro de version sur WordPress. Attention, cette technique est bancale puisqu’il est toujours possible pour un individu mal intentionné ou un script de vérifier la présence de fichier ajouté dans telle ou telle version de WordPress.

Masquer le message des erreurs de connexion

La page de connexion affiche des messages d’erreurs trop précis. Il est possible de masquer ces messages d’erreur en ajoutant le code suivant dans le fichier functions.php de son thème :

add_filter(‘login_errors’,create_function(‘$a’, « return null; »));

Désactiver l’éditeur de fichier au sein du back office de WordPress

Modifier dans wp-config.php :

define( ‘DISALLOW_FILE_EDIT’, true );

Isoler l’installation de PhpMyAdmin

Evitez d’avoir l’installation PhpMyAdmin accessible à une adresse telle que monsite.com/phpmyadmin/.

S’assurer que les clés secrètes du fichier wp-config.php soient générées et uniques

Le fichier wp-config.php contient des clés de sécurité. Si les clés n’ont pas été générées correctement, il est possible de les ajouter manuellement, grâce à un générateur en ligne : https://api.wordpress.org/secret-key/1.1/salt/

Migrer vers https

L’activation de HTTPS sur une installation WordPress offre une protection supplémentaire.

Alex du site WP Marmite à rédigé un long article à ce sujet : Comment passer son site WordPress en HTTPS.

Sauvegarde régulière

Plusieurs plugins permettent de sauvegarder le contenu et les fichiers à intervalle régulier (cf. backup). Il en existe plusieurs, qui peuvent enregistrer les données ou fichiers, sur des plateformes telles que Google Drive ou Dropbox. A vous de faire votre choix, en voici quelques uns :

Plugins recommandés

Certains plugins sont spécialisés dans la sécurité WordPress. Attention, installer un ou plusieurs de ces plugin ne signifie en aucun cas que votre installation est devenue miraculeusement protégée de toutes attaques, ce sont juste des aides sur certains points de failles de sécurité.

Autre

Pensez à ajouter vos propres conseils dans les commentaires et à vérifier par vous mêmes les conseils évoqué ici. Ne croyez personne sur parole.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *