WordPress

Sécuriser WordPress

Il est important d’être attentif à la sécurité de son site WordPress. Voici quelques bons réflexes à avoir afin de se protéger contre un piratage éventuel.

Plugins et thèmes

  • N’installez que les plugins (extensions) réellement nécessaires à votre site car certains peuvent présenter des failles exploitées par des pirates. Ne les téléchargez que sur le site officiel WordPress.
  • Choisissez bien les plugins que vous utilisez. Avant d’installer un plugin faites quelques vérifications. La date de mise à jour doit être récente, de préférence inférieure à 3 mois. Le plugin doit être compatible avec votre version de WordPress. Vérifiez également le nombre de téléchargements (plus il est élevé, meilleur signe c’est) et la notation du plugin (nombre de votes et d’étoiles). Choisissez de préférence les extensions de 4 étoiles et plus.
  • Faites des mises à jours régulières du noyau WordPress, des plugins et thèmes. Cela vous permettra de bénéficier des derniers correctifs des failles de sécurité. (N’oubliez pas de faire une sauvegarde avant chaque mise à jour !)

Comptes et connexion

  • N’utilisez pas  « admin » comme nom d’utilisateur. Si ce compte existe déjà sur votre site, vous pouvez le supprimer et créer un autre compte administrateur avec un nouveau nom.
  • Ne donnez pas les pouvoirs d’administrateur à tous les utilisateurs, un simple compte Auteur suffit généralement.
  • Utilisez un compte Auteur et non Administrateur pour poster des articles sur le site, pour ne pas mettre en évidence votre login (qui est le nom d’auteur). Même si vous affichez un pseudo à la place de votre nom d’auteur, ce dernier s’affichera tout de même sur votre page auteur.
  • Mot de passe : Utilisez un mot de passe complexe associant lettres, symboles et chiffres, majuscules (au moins 8 caractères)
  • Masquez les messages d’erreurs de connexion. Ils révèlent de précieuses informations (indiquant si c’est le login ou le mot de passe qui est invalide). Pour cela, ajouter dans le fichier functions.php de votre thème :
  • //masquer les erreurs de login
    add_filter('login_errors',create_function('$a', "return null;"));

Système

  • Masquez la version de votre WordPress, elle donne des informations aux hackers potentiels.
    Pour supprimer le tag « generator », présent dans la balise head de votre site et qui contient le numéro de version, dans le fichier function.php de votre thème, ajoutez :

    function version_removal() {
        return '';
    }
    add_filter('the_generator', 'version_removal');

    Pour supprimer également les numéros de versions présents dans les JS/CSS, ajoutez :

    N’oubliez pas de supprimer le fichier readme.html à la racine du site, il contient également le numéro de version.

    function removeVersionCallback($matches) {
      return "ver=".md5(print_r($matches, true)."");
    }
    function removeVersion($url) {
      return preg_replace_callback("/ver=[^&]*/", removeVersionCallback, $url);
    }
    add_filter( 'style_loader_src', 'removeVersion');
    add_filter( 'script_loader_src', 'removeVersion');
  • Faites des sauvegardes régulièrement de votre base de données et de votre site.
  • Il est conseillé de verrouiller l’éditeur de code se trouvant à l’intérieur du CMS.  Pour le désactiver, ajoutez la ligne suivante dans le fichier wp-config.php :
    define('DISALLOW_FILE_EDIT',true);

Htaccess

Modifiez votre fichier .htaccess pour protéger vos fichier et bloquer la navigation dans l’aborescence de vos dossiers WordPress :

Protégez le fichier wp.config.php qui contient toutes vos informations de connexion, base de données, etc.

<Files wp-config.php>
 order allow,deny
 deny from all
</Files>

De la même manière, sécurisez votre fichier .htaccess en lui-même :

<Files .htaccess>
order allow,deny
deny from all
</Files>

Pour empêcher le listing de vos répertoires :

Options All -Indexes

Le Hotlinking  consiste à utiliser l’adresse d’un fichier publié (en général les images) sur votre site pour l’afficher sur un autre site. Pour vous en prémunir, et protéger votre bande passante, ajoutez dans votre fichier .htaccess :

# Active le mode de ré-ecriture
RewriteEngine on
# S'il y a un site référant
RewriteCond %{HTTP_REFERER} !^$

# Autorise les requêtes venant de votre domaine
# (NC : insensible à la casse)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votredomaine.com [NC]

# Sites autorisés (certains moteurs de recherche)
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]

# Ne renvoi rien si c'est un gif, jpg, png...
RewriteRule \.(gif|jpg|jpeg|png|svg)$ - [F,L]

Base de données

  • Pour un nouveau site, n’utilisez pas le préfixe « wp_ » par défaut des tables de votre base de données pour éviter les injections SQL.
    Pour un site/blog déjà existant, modifiez-les. Vous pouvez par exemple suivre ce tuto.
  • Une fois le site installé, il est préférable de modifier les droits de WordPress en les limitant à SELECT, INSERT, UPDATE, DELETE.

FTP

Utilisez une connexion SFTP (Secure File Transfer Protocol) plutôt que FTP.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *