Sécuriser WordPress

Configurer la sécurité de votre WordPress

Les bonnes pratiques pour WordPress

Pour éviter à votre site de subir des attaques, il y a des bonnes pratiques à connaître. La mise en place des conseils suivant permettra d’éviter les attaques les plus courantes.

Mettre à jour WordPress et les plugins

Les mises à jour permettent la correction de failles de sécurité. Elles évitent donc que les attaquants utilisent des failles de sécurité connues pour accéder à votre site. Il est donc vital pour la sécurité de votre WordPress qu’elles soient faites le plus rapidement possible.

Utilisez des mots de passes différents et forts

Les mots de passes forts rendent plus difficile les attaques par bruteforce de vos mots de passes. Dans le cas de la fuite d’un mot de passe et dans le cas où vous utilisez des mots de passes différents pour chaque service, l’attaquant n’aura pas accès à la totalité de votre compte.

Changez le nom du compte administrateur

Le compte administrateur porte le même nom pour tout les WordPress. Si vous ne le changez pas, l’attaquant n’a plus qu’à trouver votre mot de passe. Il y a deux méthodes pour changer le nom du compte administrateur :

Dans WordPress

Créez un nouveau compte administrateur dans Utilisateur -> Ajoutez puis changez son rôle en administrateur, supprimez le compte admin et enfin réattribuez le contenu du compte administrateur au nouveau compte.

En SSH

Dans votre base de données MySQL vous pouvez directement modifier le compte admin en ramplaçant Nouveau_Login par votre identifiant

UPDATE wp_users SET user_login = ‘Nouveau_Login‘ WHERE user_login = ‘Admin’;

Configuration

Dans le fichier .htaccess

Assurez vous que la directive suivante est bien présente :

Option All -Indexes

Pour vous protégez du hotlinking ajoutez :

# Activation du mode Rewrite
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$

# Les requêtes en provenance de votre domaine sont autorisées
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votredomaine.com [NC]

# Autorisation d'utilisation du contenu par les moteurs de recherche
RewriteCond %{HTTP_REFERER}  !search\?q=cache               [NC]
RewriteCond %{HTTP_REFERER}  !google\.                      [NC]

# Renvoi d'une image alternative en cas d'emploi abusif des votre
RewriteRule \.(gif|jpg|png)$ http://domain.tld/hotlink.jpg  [R,NC,L]

D’autres règles pour lutter contre le XSS, les redirections HTTP et les modifications de variables PHP :

RewriteEngine On
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)base64_encode(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteRule (.*) - [F]

Dans le fichier function.php

Empêcher que la version de votre WordPress s’affiche permet de rendre plus difficile une potentielle attaque, vous pouvez la cacher avec :

remove_action("wp_head", "wp_generator");

Retirez l’affichage des erreurs de connexions :

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

Source : alwaysdata