Comment sécuriser votre site WordPress sans utiliser de plugin de sécurité tout en un ?

Sécuriser son site WordPress est une étape incontournable lorsque l’on crée un site internet. Il existe de nombreux plugins qui vous permettent de sécuriser un site sous WordPress. Citons par exemple WordFence, Sucuri, All in One WP Security ou encore iThemes Security. Malheureusement tous présentent l’inconvénient de créer de nombreuses tables dans votre bases données et donc d’alourdir votre site ce qui va potentiellement le ralentir. Ceci est plus ou moins l’opposé du but recherché lorsqu’on sécurise son site internet. Ces plugins de sécurité tout en un sont donc, pour moi, une fausse bonne solution. Il est également difficile de savoir quel plugin de sécurité WordPress utiliser tant ceux-ci sont nombreux comme on peut le voir lorsqu’on recherche le meilleur plugin de sécurité WordPress sur Google. Il existe néanmoins des plugins WordPress qui permettent de limiter les risques sans trop alourdir votre site.

Suite à la vidéo de Fabien de VIP SEO faite il y a quelques temps, j’ai eu envie de résumer ici les solutions qu’il proposait. Découvrez ci-dessous un petit tour d’horizon de la sécurisation minimum requise pour un site sur WordPress et quelques autres bonnes pratiques pour sécuriser votre CMS.

Résultats de recherche sur Google pour la requête "Meilleur plugin securite wordpress"

Résultat de recherche pour la requête « Meilleur plugin securite wordpress » sur Google France (Français).

Identifiants de connexion

La façon la plus simple de hacker un site WordPress est sans doute de se connecter avec les identifiants de l’administrateur. Pour l’empêcher il vous faut modifier la configuration initiale d’un site WordPress au niveau des utilisateurs.

Ajouter un administrateur et supprimer l’ancien

Si votre identifiant de connexion est « admin ». La première chose à faire pour sécuriser un site WordPress est sans doute de renommer l’utilisateur principal du site par autre chose que « admin » et de choisir un mot de passe suffisamment long et difficile à trouver. Pour y parvenir, créez un nouvel utilisateur avec un rôle d’administrateur, choisissez un autre nom pour votre nouvel administrateur et supprimer le profil admin initial.

Créez un nouvel utilisateur avec le rôle d’éditeur

Créez un autre utilisateur avec un profil d’éditeur qui sera utilisé pour signé les articles et pages de votre site. Attribuez l’ensemble des pages et articles à cet utilisateur via une modification rapide dans la liste des articles et des pages de votre site.

Modifier l’url de connexion à WordPress

Si votre adresse de connexion au tableau de bord est /wp-admin il faudra également modifier cet url au profit de quelque chose de plus difficile à trouver. Vous pouvez utilisez un plugin pour cela (WPS Hide Login).

Modifier le fichier functions.php

Si vous utilisez un thème enfant rendez-vous dans son répertoire et modifier le fichier functions.php ou créez le s’il n’existe pas. Si le fichier functions.php existe, rendez-vous en abs du fichier avant la balise de fermeture du fichier "?>" pour y ajouter vos lignes de codes.

Ajouter les lignes de code suivantes :

<?php
// Cacher la version de WordPress

remove_action("wp_head", "wp_generator");


// Empêcher la modification des fichiers depuis l'éditeur de fichier WordPress

define('DISALLOW_FILE_EDIT',true);


// Cacher les erreurs de connexion
add_filter('login_errors',create_function('$a', "return 'Erreur';"));
?>

Fichier Readme

Le ficher readme.html accessible à l’adresse de votre site /readme.html présente la version de WordPress utilisé. Veillez donc à supprimer ce fichier afin de ne pas donner cette indication publiquement.

Fichier Htacess

Sécurité, redirections, vitesse de chargement, le fichier .htacess d’un site internet est utile à bien des égards. Par défaut, les répertoires de votre site internet sont publiques. Configurez votre fichier .htacess de manière à empêcher l’accès public à vos répertoires et à vos fichiers comme le fichier wp-config.php. Avant de modifier ce fichier, pensez bien à en réaliser une sauvegarde.

  • Désactiver l’affichage du contenu des répertoires en ajoutant « Options All -Indexes » en bas de votre fichier .htaccess :

Options All -Indexes

  • Bloquer le fichier wp-config.php en ajoutant  files wp-config.php order allow,deny deny from all files :

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

  • Protéger l’accès au fichiers .htaccess et .htpasswds :

<Files ~ "^.*\.([Hh][Tt][AaPp])">
order allow,deny
deny from all
satisfy all
</Files>

WP-Config.php

Le fichier wp-config.php est l’un des plus importants de votre site internet WordPress. Il contient les informations pour la configuration de base de votre site y compris les informations de connexion à la base de données. Ce fichier est créé automatiquement au moment de l’installation de WordPress. Vous pouvez le trouvez à la racine du répertoire d’installation de votre site. Pour connecter votre base de données en cas de changement de mot de passe par exemple ou pour utiliser une base données différentes de celle utilisée lors de l’installation de votre site, vous pouvez modifier les valeurs suivantes :

  • Nom de la base de données de WordPress.
  • Utilisateur de la base de données MySQL.
  • Mot de passe de la base de données MySQL.
  • Adresse de l’hébergement MySQL.

Modifier les clés dans les clés de sécurité WordPress

Le fichier wp-config.php contient aussi des clés de sécurité. Créez une clé suffisamment longue (16 ou 20 caractères par exemple) pour être difficile à trouver avec des chiffres, des lettres, minuscules, majuscules, ainsi qu’avec des caractères spéciaux. Vous pouvez générer des clés aléatoires en utilisant un générateur de clés en ligne ou via un outil de générateur de mot de passe par exemple. Les clés de sécurité WordPress rendent votre site plus difficile à attaquer en ajoutant des éléments aléatoires à vos mots de passe. Si les clés de sécurité n’existent pas dans le fichier wp-config.php WordPress les générera alors de façon automatique. Pour plus de sécurité vous devez les modifier par vos propres clés.

Plugins de sécurité WordPress recommandés

Alors que faire pour sécuriser son site sans utiliser ces plugins de sécurité à tout faire ? L’idée n’est pas forcément de sécuriser son site soit même en entrant directement dans le code WordPress comme pourrait le faire un développeur averti, ce qui nécessite à la fois plus de temps et des compétences techniques assez pointues mais plutôt d’utiliser des plugins spécifiques pour combler une par une chaque faille de sécurité de WordPress, ou du moins, les plus connues. Voici donc une série de plugins qui vont vous permettre de parvenir à sécuriser votre site WordPress sans trop surcharger la base de données associée.

WPS Hide Login

Ce plugin permet de bloquer l’accès au dossier wp-admin en modifiant l’url de connexion au tableau de bord WordPress de votre site internet. Par défaut l’URL est nomdusite.extensiondenomdedomaine/wp-admin. Ce plugin va vous permettre de modifier cette url de connexion de WordPress par défaut, par un url que vous choisissez vous même. Vous limitez ainsi les risques de connexion au tableau de bord de votre site par un robot ou un hacker qui devront d’abord connaître l’adresse de connexion avant d’essayer des combinaisons.

Disable XML-RPC

Le plugin XML-RPC par Philip Erb permet à votre site WordPress de communiquer avec d’autres sites web et applications via le fichier xmlrpc.php situé à la racine de votre site. XML RPC permet notamment les rétroliens (Trackback) et commentaires automatisés (Pingback). Une majorité des attaques de sites WordPress sont réalisées par ce biais. Le plugin Disable XML-RPC va donc, comme son nom l’indique, désactiver ces fonctionnalités et ainsi limiter le risque d’attaque via cette faille de sécurité. L’installation du plugin Disable XML-RPC ne demande pas de paramétrage particulier, il suffit de l’activer une fois celle-ci ajouté sur votre site wordpress.

HTTP Headers

Le plugin HTTP Headers, créé par Dimitar Ivanov ajoute le CORS (acronyme de Cross-Origin Resource Sharing soit « partage de ressources entre origines multiples ») et les en-têtes HTTP de sécurité à votre site web. Pour faire simple, ce plugin vous permet de paramétrer votre header de façon à sécuriser votre site. Une fois ce plugin installé, quelques paramétrages simples sont à réaliser dans les instructions de votre header pour combler les principales failles de sécurité du protocole http :

  • X-Frame-Options : value « SAMEORIGIN » et statut ON
  • X-XSS-Protection : value « 1; mode = Block et statut ON
  • X-Content-Type-Options : value nosniff et statut ON
  • Strict-Transport-Security : value « max-age » sur 2 ans, includeSubDomaines, preload et statut ON
  • X-DNS-Prefetch-Control : value « on »
Paramétrages basique du plugin WordPress Http Headers

Paramétrages du plugin WordPress Http Headers

Limit Login Attempts Reloaded

Le plugin Limit Login Attempts Reloaded est un plugin de sécurité WordPress qui bloque les hackers qui essayent de se connecter par la méthode Brute Force au tableau de bord ou back office de votre site WordPress. La méthode Brute Force consiste simplement à réaliser de multiples tentatives de connexion avec différentes combinaisons de noms d’utilisateur et de mots de passe jusqu’à trouver la bonne. Le plugin Limit Login Attempts Reloaded est considérer comme l’un des meilleurs plugins de sécurité WordPress. Il est utilisé sur plus de 2 millions de sites web et est téléchargé en moyenne plus de 6 000 fois chaque jour. Le nombre de tentatives autorisées peut être paramétrer, ainsi que la durée du verrouillage du compte après que le nombre de tentatives autorisées soit atteint. La durée avant une réinitialisation peut aussi être adaptée, elle est de 24 heures par défaut.

La double authentification

Le plugin Google Authenticator vient ajouter une couche de sécurité supplémentaire à l’espace de connexion de votre site. La plupart des tentatives de hacking de WordPress étant réaliser par ce biais, cette méthode est un bon complément aux techniques proposées ci-dessus. Vous serez ainsi invité à valider l’accès à votre site via votre téléphone et limiterez les possibilités qui s’offrent aux hackers.

La liste des préconisations ci-dessus n’est pas exhaustive et il existe bien des moyens de contourner les sécurités en place sur un site tout comme il existe d’autres techniques pour les sécuriser. Un site ne sera jamais entièrement sécurisé et il convient de réaliser des mises à jour régulières de WordPress, du thème utilisé (penser à supprimer les autres du ftp) ainsi que des différents plugins (pensez aussi à supprimer les plugins non utilisés).

Enfin, avant d’intervenir pensez à réaliser une sauvegarde de votre espace ftp et de votre base de données, il est plus simple de rétablir une ancienne version de votre site que de trouver et corriger un bug.


SAUVEGARDER TOUJOURS VOTRE SITE ET SA BASE DE DONNÉES AVANT DE RÉALISER DES MODIFICATIONS


Le tuto sécurisation WordPress de Fabien Raquidel

Laisser un commentaire

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