source: NeoSting.net
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.
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/ |