Devenez votre propre Webmaster

Sécurisez votre site Internet WordPress

securisez votre site wordpressCet article fait suite à l'article de présentation sur l'installation d'un site avec WordPress et de l'article d'installation de WordPress en 3 étapes.

Maintenant que nous avons installé notre site avec WordPress, nous allons voir comment le sécuriser et deux plugins qui permettent d'améliorer les performances de votre site WordPress.

Sécurisez les utilisateurs de votre site WordPress

Modifier le nom de l'utilisateur Admin

La première chose à faire et que l'on a vu pendant l'installation de WordPress est de ne pas mettre le nom d'utilisateur "Admin" comme administrateur du site. Les personnes malveillantes et les Robots conçus pour essayer de s'introduire dans votre système commenceront par essayer ce nom d'utilisateur. Utiliser un nom qui n'a pas de rapport avec votre site et si possible un nom qui n'existe pas avec des symboles "@,_", des chiffres, des majuscules et minuscules.

Si vous avez déjà installé votre site WordPress et que vous avez mis le nom "admin" comme profil principal, tout n'est pas perdu, vous pouvez encore le modifier. Connectez vous à votre base de données avec les coordonnées que vous afourni votre hébergeur, cliquez sur l'onglet SQL, puis exécutez la requête SQL suivante en plaçant le nom de l'utilisateur "Votre-Nouveau-Nom" par le votre :

UPDATE wp_users SET user_login = 'Votre-Nouveau-Nom' WHERE user_login = 'Admin';

Pour cet utilisateur choisissez un mot de passe très compliqué. De préférence un mot qui ne veut rien dire et assez long. Alternez des majuscules, minuscules, des chiffres (pas seulement à la fin), des caractères spéciaux (!#$%-_).

Créer un utilisateur pour rédiger vos contenus

En informatique on évite d'utiliser l'utilisateur "Admin" pour deux raisons, éviter de faire des bêtises et minimiser le risque de se faire pirater ce compte. Je vous conseille de créer un utilisateur depuis le menu "Utilisateurs" de votre console d'administration WordPress. Attribuez lui soit le rôle "éditeur" soit "auteur" . La différence est que l'éditeur peut modifier les articles et les pages des autres utilisateurs et gérer les commentaires, alors que l'auteur ne le peut pas. L'éditeur peut aussi créer des pages, pas l'auteur.

Le fait de ne pas utiliser l'administrateur permet aussi de ne pas voir l'identifiant de l'utilisateur "Admin" dans les liens des rédacteurs des articles pour encore plus de sécurité. De ce fait le nom que vous aurez choisi pour l'administrateur n'apparaîtra nulle part sur votre site, même dans le code HTML de vos pages et vos articles. Il vous suffira de vous connecter une ou deux fois par mois pour avec l'administrateur pour vérifier les mises à jour des plugins et de WordPress, car seul lui peut le faire.
Cacher les messages d'erreur du login WordPress

Cachez les messages d'erreurs de la page de login

Les messages d'erreurs peuvent permettre d'identifier le problème de la tentative de connexion comme le fait que l'utilisateur saisi n'existe pas. Pour cacher les messages placez simplement la ligne suivante dans le fichier "functions.php" qui se trouve dans le répertoire de votre thème.

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

Sécurisez votre site WordPress depuis la plateforme Web

Sécurisez les accès au répertoire WP-admin de WordPress

ATTENTION !!! la solution dessous n'est valable que si votre F.A.I vous accorde une IP fixe (en option sauf chez free ou l'IP est fixe).

Si vous essayez d'accéder au répertoire  wp-admin de mon blog, vous vous retrouverez en face d'un message d'erreur "ACCESS DENIED". Pour plus de sécurité, vous pouvez limiter l'accès à ce répertoire qu'à certaines IP, ce qui vous permettra de limiter l'accès à ce répertoire qu'aux personnes accédant aux ordinateurs de ces IP. Cela permettra aussi de limiter l'accès aux moteurs de recherche, car ce répertoire ne doit pas être indexé.

Pour cela créez un fichier "htaccess.txt" avec votre bloc note, et coller le code suivant. Remplacer "xxx.xxx.xxx.xxx" par votre adresse IP :

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

Vous pouvez ajouter autant de lignes "allow from ..." que d'IP qui doivent garder un accès à ce répertoire. Il faut ajouter toutes les IP de vos auteurs. Pensez aussi à ajouter les IP des ordinateurs que vous utilisez chez vos proches si vous en avez besoin. Je vous conseille de Mettre une ligne de commentaire devant chaque IP pour vous souvenir à qui elle appartient et pouvoir la supprimer facilement le cas échéant. Ce qui donne les lignes :

#Administrateur
allow from xxx.xxx.xxx.xxx
#Auteur 1
allow from xxx.xxx.xxx.xxx
#Auteur 2
allow from xxx.xxx.xxx.xxx

Pour connaitre votre IP rendez-vous sur le site mon-ip.com.

Une fois finie, transférez le fichier "htaccess.txt" par FTP dans le répertoire wp-admin de votre installation (vous pouvez le faire avec filezilla par exemple). Renommez le fichier ".htaccess" sur votre site (nom impossible sur le PC d'où le fait de le nommer htaccess.txt avant de le transférer).

Il faudra ajouter les adresses IP de tous les nouveaux utilisateurs

Protéger vos données de connections dans wp-config.php

deplacer-wp-configDepuis la version 2.7 de WordPress il est possible de déplacer le fichier "wp-config.php" . Ce fichier contient entre autre les données de connexion à votre base de données, mot de passe compris.

Généralement les hébergeurs vous proposent un répertoire "www" dans le répertoire racine dont vous avez accès pour installer les fichiers de votre site, comme le montre l'image à côté. Ici dans mon exemple tous les fichiers de WordPress se trouvent dans le répertoire "www" .

WordPress accepte depuis la version 2.7 que l'on déplace le fichier "wp-config.php" dans le répertoire supérieur comme vous pouvez le voir dans l'image à côté. Déplacez votre fichier wp-config.php dans le répertoire "/" .

Cachez la version WordPress que vous utilisez

Le fait de connaitre la version de WordPress que vous utilisez peut aider les hackers à trouver les failles de sécurité de votre installation. Si vous regardez le code source de votre page, vous trouverez la version de WordPress dans l'entête comme suit :

<meta name="generator" content="WordPress 3.1.1" />

Pour cacher cette version il suffit d'ajouter une ligne dans le fichier function.php de votre thème. Votre thème se trouve dans son répertoire qui se trouve dans le répertoire "wp-content/themes" .

Ajoutez cette ligne dans le fichier function.php :

add_filter( 'the_generator', create_function('$a', "return null;") );

Renommer le répertoire wp-content pour plus de sécurité

ATTENTION !! : Si vous faites cette manipulation, alors que vous avez déjà écrit certains articles avec des images, il faudra mettre à jour les liens, je vous donne la requête SQL pour modifier les liens à la fin de cette astuce. Avant de réaliser cette astuce pensez à exporter votre base de données et surtout la table "wp_posts" pour pouvoir revenir en arrière en cas d'erreur de manipulation.

Le répertoire wp-content contient tout ce qui n'est pas standard dans wordpress. Depuis les fichiers de votre thème, aux fichiers des plugins et les fichiers des médias. Je vous conseille vivement de protéger ce répertoire.

La force des hackers est que l'arborescence des répertoires de WordPress est connu, il est facile de trouver les fichiers s'ils n'ont pas été bougés.

WordPress utilise des alias pour les noms des répertoires, ce qui permet de les renommer sans avoir à écrire plus d'une ligne de code. Voici comment renommer le répertoire wp-content :

Connectez-vous par FTP au serveur de votre hébergeur et placez vous dans le répertoire où se trouve les fichiers de votre site WordPress (par exemple www). Renommez le répertoire "wp-content"  avec le nom que vous souhaitez en respectant les règles suivantes :

  • pas de majuscule,
  • pas de caractère accentué,
  • pas d'espace,
  • que des lettres et des chiffres
  • Vous pouvez utiliser les caractères "-" et "_" .

Une fois le répertoire renommé, selon que vous ayez laissé ou pas le fichier "config.php" ou pas dans le répertoire racine de votre installation copiez les lignes suivantes dans ce fichier :

Si votre fichier config.php est dans le répertoire racine de wordpress ajoutez les deux lignes suivantes :

define('WP_CONTENT_DIR', dirname(__FILE__) . '/le nouveau nom du répertoire wp-content');
define( 'WP_CONTENT_URL', 'http://www.votre nom de domaine du site/le nouveau nom du répertoire wp-content');

Voici un exemple pour le site "www.monsite.com" dont le répertoire "wp-content" a été renommé "mon-repertoire-content" :

define('WP_CONTENT_DIR', dirname(__FILE__) . '/mon-repertoire-content');
define( 'WP_CONTENT_URL', 'http://www.monsite.com/mon-repertoire-content');

Si votre fichier se trouve dans le répertoire père du répertoire racine de WordPress (Cf l'astuce de Protéger vos données de connections dans wp-config.php) :

define('WP_CONTENT_DIR', dirname(__FILE__) . '/le répertoire de wordpress/le nouveau nom du répertoire wp-content');
define( 'WP_CONTENT_URL', 'http://www.votre nom de domaine du site/le nouveau nom du répertoire wp-content');

Un exemple si le répertoire où se trouve les fichiers WordPress se nomme "www" :

define('WP_CONTENT_DIR', dirname(__FILE__) . '/www/mon-repertoire-content');
define( 'WP_CONTENT_URL', 'http://www.monsite.com/mon-repertoire-content');

Si vous avez déjà écrit des pages et/ou des articles contenant des images, vous devez modifier les URL des images dans la table "wp_posts" voici les requêtes à exécuter :

UPDATE wp_posts SET guid = replace(guid, 'wp-content', 'le nouveau nom de wp-content');
UPDATE wp_posts SET post_content = replace(post_content, 'wp-content', 'le nouveau nom de wp-content');

Voici les requêtes pour l'exemple de renommage précédemment cité :

UPDATE wp_posts SET guid = replace(guid, 'wp-content', 'mon-repertoire-content');
UPDATE wp_posts SET post_content = replace(post_content, 'wp-content', 'mon-repertoire-content');

Les plugin WordPress pour augmenter votre sécurité

Validez par mail les IP des utilisateurs

Vous pouvez faire que toutes les nouvelles adresses IP qui essaient de se connecter avec un utilisateur déjà connu soit obligées de valider leur connexion avec un mail.
Le plugin "WP Login Security 2" envoie un mail avec une clé de validation quand un utilisateur essaie de se connecter avec une IP qui n'est pas connu pour lui. Ce plugin peut donc vous protéger si un robot arrive à identifier un nom d'utilisateur et essaie de se connecter avec, car un mail sera envoyé au vrai utilisateur pour qu'il valide la connexion.

Par contre, cela interdit toute nouvel utilisateur non connu. Si vous souhaitez ajouter des utilisateurs dans ce cas il vous faudra le créer avec votre administrateur.

Limitez le nombre de tentatives de connexions

Quand on possède les droits administrateur d'une machine sur laquelle il y a des site Internet on peut limiter le nombre de tentatives de connexions à un site en bloquant l'IP pendant une période données (par exemple 10 minutes) ce qui permet de décourager les robots qui une fois bloqués passent à autre chose. Le problème est que votre hébergeur, si vous ne possédez pas un serveur dédié pour votre site, ne vous donnera pas ces droits et ne bloquera pas cette pratique.

Je vous propose d'utiliser un plugin qui permet de le faire. "Login LockDown" permet de définir le nombre de tentatives possibles et le temps de mise en quarantaine d'une IP.

N'utilisez votre mot de passe qu'une fois

Si vous êtes amené à utiliser des ordinateurs avec peu de sécurité comme dans un cofee shop ou si vous voyagez beaucoup vous pouvez utiliser le plugin One Time Password qui vous permet de renouveler votre mot de passe après chaque utilisation. Si quelqu'un récupère votre mot de passe il ne pourra pas l'utiliser.

Quelques derniers conseils de sécurité

  • Pensez à modifier régulièrement votre mot de passe,
  • N'utilisez pas de mots trop faciles pour vos mots de passe,
  • Limitez le nombre d'utilisateurs au minimum nécessaire,
  • Ne donnez pas l'accès à n'importe qui,
  • N'utilisez que rarement l'utilisateur administrateur
  • Connectez vous un utilisateur qui ne possèdent que les droits minimum nécessaires à l'utilisation dont vous avez besoin.
Posts Similaires
Quelles sont les étapes de création d'un site

Quelles sont les phases de création des sites Internet ? Comment être certains que vous arriverez à créer un site qui vous permettra d'augmenter votre chiffre d'affaire en vous aidant à trouver de nouveaux clients.

Google Web Fonts pour rendre votre site plus unique

Google Web Fonts est un outil qui vous permet de personnaliser votre site en utilisant des fontes spécifiques. Cet outil est compatible avec tous les navigateurs et facile à implanter.

Combien coûte un site Internet en 2013

La France comptait 40.24 millions d'Internautes en janvier 2012 avec une progression de 4.9% par rapport à janvier 2011. Cela représente 71.6% des français de plus de 11 ans. La question de savoir si un site Internet est utile pour une société, ne se pose même plus, c'est devenu une obligation. Même petites et moyennes […]

A propos de

Consultant en informatique et concepteur de sites Internet.

Il a travaillé pendant plus de quinze ans pour une multinationale dans le secteur de l'ingénierie Informatique.

Durant ces années, il a participé à des projets sur les systêmes de facturation et la conception des sites Internet de différentes Banques et opérateurs téléphonique à travers le monde

Senior Analyst Programmer/Team Leader, il a participé et dirigé des projets sur les plus gros clusters d'Europe.

Il habite à Paris, en ile de France .

Le Site :

Le Blog :

Un commentaire pour "Sécurisez votre site Internet WordPress"
  • C' ça le Net
    Commentaire 19

    Merci pour tous ces conseils. C'est vrai qu'on oubli trop de sécuriser nos sites et que cela peut poser problème.
    Merci pour ton article