PROJET AUTOBLOG


NeoSting.net

source: NeoSting.net

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Sécuriser l'administration WordPress par htaccess, htpasswd #wordpress

mardi 16 avril 2013 à 17:00

NeoSting.net - Sécuriser l'administration WordPress par htaccess, htpasswd

Voici une petite astuce très simple à mettre en place, et plutôt efficace, qui permet, sans plugin, de se prémunir des invasions intrusives dans son administration de WordPress, notamment par les Botnet. L'administration de WordPress sera en fait, protégée par un cookie personnel géré et vérifié par le biais du fichier .htaccess (caché à la racine de l'installation de son blog).

Le principe est assez simple, le fichier htaccess va vérifier que l'adresse d'accès à l'administration de WordPress depuis le navigateur contient bien une passphrase (un mot de passe). Comme c'est vous qui déterminez cette clé secrète, toutes tentatives d'accès sans cette clé se solderont par un aller simple vers le front-end (le blog).

Il faut donc écrire ou copier les quelques lignes ci-dessous dans le fichier .htaccess, de préférence au début, et modifier, pour cet exemple les 3 "MySecretKey" par votre clé personnelle à ne pas diffuser ; ex. JeSuisTonPere. N'oubliez pas de changer aussi DOMAINE.COM par votre nom de domaine.

Enfin, pour accéder à votre administration de WordPress, vous devrez écrire l'adresse de type :

http://neosting.net/wp-login.php?JeSuisTonPere=true

Et pour les plus paranoïaques, vous pouvez aussi cumuler cette astuce avec le plugin Login Dongle.

# Protection Admin Login Wordpress
RewriteEngine On
# Is this a request for wp-login?
RewriteCond %{REQUEST_URI} ^/wp\-login\..*
# Check for the secret word
RewriteCond %{QUERY_STRING} .*MySecretKey=.*
# Set a cookie, so that all future requests will be auto-authenticated
RewriteRule ^.* /wp-admin/ [cookie=MySecretKey:true:DOMAINE.COM:3600:/,R,L]
# Is this a request to the admin?
# comment out this line and you will be able to reach wp-login.php, but not anything in /wp-admin/ until you authenticate
RewriteCond %{REQUEST_URI} ^/wp\-login\..* [OR]
RewriteCond %{REQUEST_URI} ^/wp\-admin/.*
RewriteCond %{HTTP_COOKIE} !\bMySecretKey\b
# Unathenticated, redirect to homepage with a disallowed indicator
RewriteRule ^.* /?disallowed=true [R,L]

Un grand merci à l'ami Gonzague pour cette astuce.

La seconde méthode avec htpasswd

Vous pouvez aussi utiliser une autre solution encore plus sécurisée et tout aussi radicale qui va protéger le répertoire wp-admin par un nouveau login et un mot de passe chiffré. Il faut créer un fichier .htaccess et .htpasswd (cachés) dans le répertoire wp-admin. Dans le fichier .htaccess, vous ajouterez ces quelques lignes (modifiez le chemin du .htpasswd)

AuthType Basic
AuthName “Restricted Area”
AuthUserFile /var/www/wp-admin/.htpasswd
# Exemple : /srv/data/web/MONINSTANCE/admin/.htpasswd dans Simple Hosting
AuthGroupFile /dev/null # suivant la configuration du serveur
require valid-user # ou require user DarkVador

Dans le .htpasswd (que vous pouvez mettre ailleurs sur le serveur), créez un mot de passe chiffré grâce à ce site, par exemple, et copiez dedans le contenu comme ci-dessous. Pensez aussi à mettre les permissions de ces deux fichiers en CHMOD 444.

DarkVador:$1$cuxd9SDn$T7ECxqmHntYrJN5TbfgJb/

flattr this!