Sécurité WordPress : Tout pour Sécuriser son Site

Sécurité WordPress : Tout pour Sécuriser son Site

Un pirate peut se servir de données comme il le veut ! Sachez que WordPress est l’un des systèmes de gestion de contenu les plus populaires au monde ! Il a été installé plus de 76,5 millions de fois. Selon un rapport émis par Securi, une entreprise de sécurité Internet, WordPress est le CMS le plus piraté au monde. C’est problématique puisqu’un pirate peut utiliser vos cartes bancaires ou vos photos de famille par exemple ! Et c’est pour cela qu’il est nécessaire de sécuriser WordPress !

Cependant, il est assez facile d’optimiser votre sécurité WordPress si vous avez de bonnes pratiques et mettez en œuvre les quelques astuces que nous vous fournirons dans ce tutoriel ! Allons-y !

Ce dont vous aurez besoin

Pour sécuriser un site WordPress, assurez vous d’avoir avec vous les éléments suivants :

  • Un accès à la section Administrateur WordPress
  • Un accès à votre compte d’hébergement (facultatif)

Étape 1 – Gardez votre WordPress mis à jour

Ceci va vous permettre de sécuriser WordPress efficacement, croyez moi ! Et oui, cela semble simple, mais seulement 22% des sites sous WordPress utilisent la dernière version ! Entre nous, qui n’a jamais eu la paresse de ne pas mettre à jour son site ? 😉 Si vous voulez avoir un site Web propre et sans virus, c’est obligatoire !

WordPress a incorporé la mise à jour automatique dans la version 3.7, cependant, elle ne fonctionne que pour les petites mises à jour de sécurité. Ainsi, les mises à jour majeures doivent être effectuées manuellement pour sécuriser un site WordPress !

Étape 2 – Utilisez des informations de connexion moins communes

Ne jamais utiliser l'utilisateur admin

Utilisez-vous admin comme nom d’utilisateur administrateur WordPress ? Si votre réponse est oui, sachez qu’il sera plus simple de vous pirater. Alors modifiez maintenant le nom d’utilisateur ! Vous pouvez aussi créer un nouveau compte Administrateur avec un nom d’utilisateur différent et supprimer l’ancien. Si vous préférez la cette méthode, suivez ces étapes simples :

  1. Accédez au tableau de bord WordPress
  2. Accédez à la section Utilisateurs et appuyez sur Ajouter.
Ajouter un utilisateur à WordPress
  1. Créez un nouvel utilisateur et attribuez-lui un rôle Administrateur.
Créer un nouvel utilisateur admin à WordPress
  1. Re-login à WordPress avec votre nouveau nom d’utilisateur.
  2. Revenez à la section Utilisateurs et supprimez l’utilisateur Admin.
Supprimer l'utilisateur admin de WordPress

Un bon mot de passe est la clé de voûte pour sécuriser WordPress efficacement. Il est beaucoup plus difficile de forcer un mot de passe composé de chiffres, de lettres majuscules et minuscules et de caractères spéciaux. Des outils comme LastPass et 1Password peuvent vous aider à créer et surtout à gérer des mots de passe complexes !

Étape 3 – Activation de l’authentification en deux étapes

La validation en deux étapes vous permet de renforcer la sécurité de WordPress au mieux. Comme son nom l’indique, il ajoute une autre étape que vous devrez remplir pour vous connecter. Il est fort probable que vous l’utilisiez déjà pour accéder à vos mails, à votre banque ou à tout autre compte contenant des informations sensibles. Alors pourquoi ne pas l’utiliser sur WordPress?

Bien que cela puisse sembler compliqué, il existe aujourd’hui des solutions simples pour utiliser cette vérification en deux étapes. Tout ce que vous avez besoin de faire est d’installer une application d’authentification en 2 étapes (sur votre téléphone par exemple) et de configurer WordPress.

Étape 4 – Désactivation des rapports d’erreurs PHP

Les rapports d’erreur de PHP peuvent être utiles si êtes développeur Web et que vous voulez vous assurer que tout fonctionne correctement. Cependant, montrer les erreurs publiquement est une faille de sécurité majeure !

Vous devez corriger cela dès que possible ! Rassurez vous, vous n’avez pas besoin d’être un codeur pour désactiver les rapports d’erreurs PHP pour WordPress ! 😉 De nombreux fournisseurs d’hébergement vous proposeront de désactiver les rapports d’erreurs dans le panneau de contrôle. S’il ne le vous proposent pas, ajoutez simplement les lignes suivantes à votre fichier wp-config.php. Vous pouvez utiliser votre client FTP ou le Gestionnaire de fichiers pour éditer wp-config.php.

error_reporting(0);
@ini_set(‘display_errors’, 0);

C’est tout ! Les rapports d’erreur sont maintenant désactivés

Étape 5 – N’utilisez pas d’extensions WordPress crackées

« Si c’est gratuit, vous êtes le produit » Il en va de même pour une majorité de logiciels pirates ! Si vous voulez garantir la sécurité de WordPress et l’utiliser notamment à des fins professionnelles, utilisez ce qui est payant !

Il y a des milliers de plugins et de thèmes pirates sur Internet. Les utilisateurs peuvent les télécharger gratuitement à partir de divers sites de Warez ou de torrent. Malheureusement, la plupart d’entre eux sont infectés par des liens malveillants ou du blackhat SEO.

Si vous voulez un site sain, arrêtez de télécharger des extensions crackées car vous finirez par payer plus pour qu’un développeur chevronné nettoie votre site web !

Étape 6 – Scannez WordPress avec un anti-virus

Les pirates utilisent souvent des failles dans les thèmes ou les plugins afin d’infecter WordPress avec des logiciels malveillants. Par conséquent, il est crucial de scanner votre blog fréquemment pour sécuriser WordPress ! Il existe de nombreux plugins extrêmement bien codés pour cet usage ! WordFence est le plugin qui se démarque. Il est simple d’utilisation et complet ! Il offre des options de balayage manuel et automatique ainsi que de nombreux réglages différents. Vous pouvez même restaurer des fichiers modifiés / infectés en quelques clics . Et en plus de cela, il est gratuit et open source. Alors, empressez vous d’installer ce plugin ! 😉

D’autres plugins de sécurité WordPress populaires:

  • BulletProof Security – à la différence de WordFence, que nous avons décrit précédemment, BulletProof n’analysera pas vos fichiers, mais il vous fournira principalement un pare-feu et une sécurité supplémentaire pour la base de données. Ce qui est bien avec ce plugin c’est qu’il sera configuré et installé en quelques clics seulement !
  • Sucuri Security – ce plugin vous protégera des attaques DDoS, il tiendra une liste noire, analysera votre site Web et contrôlera votre pare-feu. S’il détecte quelque chose, il vous en informera par courrier électronique. Google, Norton, McAfee – tous ces moteurs sont inclus dans ce plugin pour vous permettre une sécurité maximale.

Au mieux, essayez les tous ! Vous pouvez trouver un guide complet sur l’installation des plugins WordPress.

Étape 7 – Migrez votre site WordPress vers un hébergement plus sécurisé

Cela peut sembler être un conseil étrange, mais les statistiques montrent que plus de 40% des sites WordPress ont été piratés en raison de failles de sécurité dans les comptes d’hébergement même ! C’est un donc un conseil là aussi très important si vous voulez sécuriser WordPress ! 😉 Cette statistique devrait vous faire reconsidérer votre choix d’hébergement actuel et vous faire migrer votre site WordPress vers un hébergement plus sécurisé. Quelques faits clés sont à prendre en compte lors de la recherche d’un nouvel hébergement:

  • S’il s’agit d’un hébergement mutualisé, assurez-vous que votre compte soit isolé des autres utilisateurs et qu’il n’y a aucun risque qu’un seul des sites Web infecte tous les autres sur le serveur.
  • Il doit faire des sauvegardes automatiques.
  • Il doit disposer d’un pare-feu côté serveur (server side) et d’un antivirus.

Étape 8 – Sauvegardez aussi souvent que possible

Sécuriser WordPress par une sauvegarde

Même les plus grands sites Web sont piratés chaque jour malgré le fait que leurs propriétaires dépensent des milliers pour sécuriser WordPress.

Même si vous avez de bonnes habitudes et remplissez les autres conseils de cet article, il est toujours crucial de sauvegarder votre site WordPress régulièrement.

Il existe plusieurs façons de créer une sauvegarde. Par exemple, vous pouvez télécharger manuellement les fichiers WordPress et exporter la base de données ou utiliser l’outil de sauvegarde de votre hébergeur. Mais vous pouvez aussi utiliser des plugins de sauvegarde. Les plugins de sauvegarde WordPress les plus populaires sont :

Vous pouvez même automatiser le processus de sauvegarde et stocker vos sauvegardes WordPress dans Dropbox.

Étape 9 – Désactivation de l’édition de fichier

Comme vous le savez peut-être, WordPress a un éditeur de fichiers incorporé qui permet l’édition de fichiers PHP. Bien que cette fonctionnalité soit très utile pour les développeurs, elle peut aussi être fatale ! Si l’attaquant obtient l’accès à votre tableau d’administration, la première chose qu’il recherchera est ce même éditeur. Il saccagera tous vos fichiers et c’en sera fini avec votre site. Certaines personnes (comme nous) désactivent complètement cette fonctionnalité pour sécuriser WordPress. Elle peut être désactivée en éditant le fichier wp-config.php et en incluant la ligne de code suivante:

define( 'DISALLOW_FILE_EDIT', true );

Oui, comme vous le voyez, avec juste quelques lignes de code, on peut mieux sécuriser WordPress ! 😉

IMPORTANT Si vous souhaitez réactiver cette fonctionnalité, utilisez votre client FTP ou le gestionnaire de fichiers de votre hébergeur et supprimez ce même code du fichier wp-config.php.

Étape 10 – Supprimez les thèmes et plugins inutilisés

Pour avoir une meilleure sécurité sur WordPress, effectuez un nettoyage de votre site WordPress et supprimez tous les plugins et thèmes inutilisés. Les pirates cherchent souvent des thèmes et des plugins désactivés et obsolètes (même officiels !) et ils les utilisent pour accéder à votre tableau de bord ou envoyer des fichiers malveillants sur votre serveur. En supprimant les plugins et les thèmes que vous avez cessé d’utiliser (et avez peut-être oublié d’exécuter une mise à jour), vous réduirez le risque de piratage de WordPress.

Étape 11 – Utilisez le htaccess à son plein potentiel

Le fichier .htaccess WordPress est nécessaire pour que les liens WordPress fonctionnent correctement. Sans règles correctes dans ce même fichier .htaccess, vous obtiendriez beaucoup d’erreurs 404. Cela peut sembler compliqué, je vous l’avoue. Mais rassurez-vous, tout a été fait pour vous !

Peu d’utilisateurs savent que .htaccess peut être utilisé pour sécuriser WordPress. Par exemple, avec .htaccess, vous pouvez bloquer l’accès de PHP à des dossiers spécifiques. Les exemples ci-dessous montrent comment utiliser .htaccess pour sécuriser WordPress

IMPORTANT Avant d’apporter des modifications, il est fortement recommandé de sauvegarder le fichier .htaccess et d’en garder une copie, au cas où. Vous pouvez utiliser votre client FTP ou le Gestionnaire de fichiers -en anglais- pour cela.

Interdire l’accès à la zone Administrateur WordPress

Le code ci-dessous permettra d’autoriser l’accès à la zone d’administration à certaines adresses IP seulement (la vôtre ?).

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>

Vous devez modifier XX.XX.XX.XXX et le remplacer par votre adresse IP. Vous pouvez utiliser ce site Web pour connaître votre IP actuelle. Si vous utilisez plus d’une connexion pour gérer votre site WordPress, assurez-vous d’inclure toutes les autres IP que vous utilisez (n’hésitez pas à ajouter autant de lignes que vous le souhaitez). Par contre n’utilisez pas ce code si vous avez une adresse IP dynamique.

Désactivation de l’exécution de PHP dans certains dossiers

Les pirates aiment télécharger des scripts backdoor vers le dossier de téléchargement de WordPress. Par défaut, ce dossier est utilisé pour télécharger des fichiers multimédias uniquement. Ainsi, il ne devrait pas contenir de fichiers PHP. Vous pouvez facilement désactiver l’exécution de PHP en créant un nouveau fichier .htaccess dans /wp-content/uploads/ avec ces règles:

<files *.php>
deny from all
</files>

Protéger le fichier wp-config.php

Le fichier wp-config.php contient les paramètres de base de WordPress et les détails de la base de données MySQL. C’est donc le fichier WordPress le plus important. C’est pourquoi il est la cible principale de tous les pirates WordPress. Toutefois, vous pouvez facilement protéger ce fichier en utilisant les règles .htaccess:

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

Avec ces quelques lignes vous venez d’améliorer significativement la sécurité de WordPress !

Étape 12 – Modifiez le préfixe de base de données WordPress par défaut pour éviter les injections SQL

La base de données SQL contient et stocke toutes les informations nécessaires à votre site pour fonctionner. En conséquence, il devient une cible de choix pour les pirates informatiques et les spammeurs qui exécutent alors un code automatisé et effectuent des injections SQL. Lors de l’installation de WordPress, la plupart des gens ne prennent pas la peine de changer le préfixe de base de données par défaut qui est wp_ . Selon WordFence , 1 sur 5 cas de piratage de WordPress est dû à des injections SQL. Puisque wp_ est le paramètre par défaut, les pirates choisiront de cibler cette valeur en premier. Dans cette étape, nous vous expliquerons brièvement comment vous pouvez sécuriser WordPress contre de telles attaques.

Modification du préfixe de table pour un site WordPress existant

IMPORTANT! Puisque l’on parle de sécurité WordPress, assurez-vous de sauvegarder votre base de données MySQL -en anglais- avant de continuer.

Partie 1 – Changement de préfixe grâce à wp-config.php

En utilisant votre client FTP ou le Gestionnaire de fichiers, ouvrez votre wp-config.php et cherchez  la valeur $table_prefix .

Changement des tables de préfixes dans wp-config

Vous pouvez ajouter des chiffres, des lettres ou des tirets. Enregistrez vos modifications et passez à l’étape suivante. Dans ce tutoriel, nous utiliserons wp_1securite2_ comme nouveau préfixe de table.

Dans votre fichier wp-config.php , cherchez également votre nom de base de données, afin que vous sachiez quelle base de données vous devez modifier. define(‘DB_NAME’

Changer le nom de la base de données dans wp-config

Partie 2 – Mise à jour de toutes les tables de base de données

Maintenant, vous devrez mettre à jour toutes les entrées de votre base de données pour sécuriser WordPress. Pour ce faire nous utiliserons phpMyAdmin !

choisir phpmyadmin dans la section Bases de données de hPanel

Accédez à la base de données que vous avez cherché dans la partie 1.

Bouton accédez à phpMyAdmin sur hpanel

Une installation de WordPress classique a 12 tables. Chacune doit être mise à jour. Sachez que vous pouvez le faire rapidement dans la section SQL de phpMyadmin.

Accéder à la section SQL de phpMyAdmin

Nous utiliserons des requêtes SQL pour accélérer le processus. Effectivement vous comme moi n’avons pas envie de passer des heures à mettre à jour les tables manuellement ! 😉 Utilisez la syntaxe suivante pour mettre à jour toutes les tables de votre base de données.

RENAME table `wp_commentmeta` TO `wp_1securite2_commentmeta`;
RENAME table `wp_comments` TO `wp_1securite2_comments`;
RENAME table `wp_links` TO `wp_1securite2_links`;
RENAME table `wp_options` TO `wp_1securite2_options`;
RENAME table `wp_postmeta` TO `wp_1securite2_postmeta`;
RENAME table `wp_posts` TO `wp_1securite2_posts`;
RENAME table `wp_terms` TO `wp_1securite2_terms`;
RENAME table `wp_termmeta` TO `wp_1securite2_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1securite2_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1securite2_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1securite2_usermeta`;
RENAME table `wp_users` TO `wp_1securite2_users`;

Il est possible que certains thèmes ou plug-ins WordPress créent des tables supplémentaires dans la base de données. Dans le cas où vous avez plus de 12 tables dans votre base de données MySQL, ajoutez le reste aux requêtes SQL manuellement  et exécutez-les.

Par exemple :

RENAME table `wp_tabledevotreplugin` TO `wp_1securite2_tabledevotreplugin`;

Où vous remplacerez tabledevotreplugin par… la table créée par celui-ci !

Partie 3 – Options de vérification et tables usermeta

Selon le nombre et le type de plug-ins installés, certaines valeurs de votre base de données devront être mises à jour manuellement. Pour cela vous devrez exécuter des requêtes SQL pour chercher ces valeurs dans la table wp_1securite2_options et la table wp_1securite2_usermeta .

Pour la table des options , vous devrez exécuter :

SELECT * FROM `wp_1securite2_options` WHERE `option_name` LIKE '%wp_%';

Pour la table usermeta , vous devrez exécuter :

SELECT * FROM `wp_1securite2_usermeta` WHERE `meta_key` LIKE '%wp_%'

Quand vous avez obtenu les résultats de la requête SQL, il vous suffit simplement de mettre à jour toutes les valeurs de wp_ à wp_1securite2_ (dans notre exemple) et ce sera terminé. Dans la table usermeta , vous devrez modifier la valeur meta_key , tandis que dans options , la valeur option_name devra être modifiée.

Changer les meta_key dans phpMyAdmin

Modification du préfixe de table pour un nouveau site WordPress

Si vous prévoyez d’installer de nouveaux sites sous WordPress, il ne sera pas nécessaire d’effectuer ce fastidieux processus. Vous pourrez tout simplement modifier votre préfixe de table pour sécuriser WordPress pendant l’installation :

Modification de préfixe de table sur une nouvelle installation de WordPress

Toutes nos félicitations ! Vous avez réussi à augmenter la sécurité de la base de données WordPress !

Conclusion

Bravo d’être arrivé jusque là ! Vous allez pouvoir profiter de votre site sans avoir à vous inquiéter de sa sécurité souvent !

Vous avez vu qu’il était facile de sécuriser WordPress, bien qu’il soit le CMS le plus piraté au monde !  Et c’est seulement un enchaînement de pratiques simples et saines qui vous permettront de ne jamais vous faire pirater ! Ou du moins réduire de 99% le risque !

J’espère que ce tutoriel vous aura été utile et je vous remercie d’avoir lu jusqu’ici ! 😉