A l’instar d’autres CMS qui ont le nom du dossier d’administration connu, l’accès à la page de login /wp-admin/index.php de wordpress représente une cible de choix pour forcer le login et password afin de compromettre un site web.

L’idée n’est pas nouvelle, elle vient d’un article à l’origine rédigé pour Joomla : cookie et redirection.

Tout d’abord, la description :

- tout accès direct au dossier /wp-admin/ est refusé

 

 

- tout accès à un dossier connu de vous seul mène à la page de login de l’administration du site, par exemple le dossier /wp-my-secret-admin/

La mise en place :

1/ sécurisation du dossier /wp-admin/

On crée un fichier .htaccess contenant :

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-admin
RewriteCond %{HTTP_COOKIE} !WordPressAdminSession=moncookiesecret
RewriteRule .* - [L,F]

Tout visiteur de /wp-admin/ ne possédant pas le cookie WordPressAdminSession de valeur moncookiesecret sera refusé.

2/ chargement du cookie par un administrateur

On créée un dossier dont le nom doit rester secret, par exemple /wp-my-secret-admin/ et contenant le fichier index.php suivant :

<?php
$admin_cookie_code="moncookiesecret";
setcookie("WordPressAdminSession",$admin_cookie_code,0,"/");
header("Location: /wp-admin/index.php");
?>

Tout visiteur du dossier /wp-my-secret-admin/ chargera un cookie WordPressAdminSession de valeur moncookiesecret et sera redirigé vers la page de connexion de WordPress.

Afin de garder votre protection efficace, à vous maintenant de choisir le nom du dossier secret, le nom et la valeur du cookie.