Sécuriser son WordPress est devenu un vrai casse-tête. Entre les failles de sécurité dans le CMS lui-même, les extensions permissives et les thèmes douteux… Il faut faire attention. Comme tout le monde, j’ai lu de nombreux articles pour optimiser et sécuriser mon WordPress. Sauf que voilà, la semaine dernière je n’y ai pas échappé. Aujourd’hui, je vous propose de trouver une astuce simple à mettre en place… et très efficace. En 10 minutes, vous allez sécuriser la page de connexion de WordPress (sans plug-in / extension).
Sécuriser wp-login.php
Pour se connecter à WordPress, il faut obligatoirement passer par la page wp-login.php. Cette page est la même pour tous les blogs. Sur cette page, ces derniers reçoivent des centaines (milliers) de tentative de connexion. Je vous propose une technique de protection sans extension et qui devrait bloquer 95% des attaques de type Brute-force. Avec cette méthode, pour accéder à la page wp-login.php, il faudra désormais avoir un cookie (de session). Comment ? En passant par une autre page…
Tout d’abord, vous allez créer un fichier avec le nom que vous voulez (exemple : connexion-blog.php) avec ce contenu :
<?php
setcookie("cookie-secure-blog", 1234567890);
header("Location: wp-login.php");
?>
C’est tout. Bien sûr, vous changerez le nom du cookie cookie-secure-blog et sa valeur 1234567890. Que fait ce code ? Il positionne tout d’abord un cookie de session dans le navigateur et ensuite il redirige directement vers la page wp-login.php. Maintenant, il ne vous reste plus qu’à l’envoyer sur votre blog en FTP. Simple non ?
Maintenant, nous allons interdire l’accès à la page wp-login.php si l’utilisateur ne dispose pas de ce cookie. Pour cela, il faudra mettre ces lignes dans votre fichier .htaccess (avant « # BEGIN WordPress ») à la racine de votre blog WordPress :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*cookie\-secure\-blog=1234567890.*$ [NC]
RewriteRule wp-login.php - [F]
</IfModule>
Faite bien attention à la cohérence du nom du cookie et à sa valeur entre connexion-blog.php et .htaccess.
Maintenant, si un utilisateur tape dans son navigateur http://www.nomdevotreblog.fr/wp-login.php il aura une belle page « Error 403 – Forbidden ». Le deuxième atout, c’est que cela déchargera sensiblement votre blog.
Maintenant, s’il passe par la page http://www.nomdevotreblog.fr/connexion-blog.php il accédera directement à la page connexion wordpress wp-login.php que l’on connaît bien.
Et les 5% restants…
Sympa, mais ça ne protège que 95 % des attaques… et les 5 % restants ? Le risque 0 n’existe pas cependant vous pouvez encore réduire ce risque d’attaque en installant une des extensions ci-dessous 😉
2 extensions, sinon rien…
Il existe de nombreux outils sous forme d’extension comme par exemple Limit Login Attempts ou BruteProtect. Le premier bloque les adresses IP ayant réalisées trop de tentatives infructueuses (paramétrable). Le second traque et recense les millions d’attaques à travers le monde… et bien sûr, vous en prémunit. On notera que celui-ci est désormais directement intégré dans JetPack.