La sécurité de WordPress n'a rien d'exotique. C'est une courte liste de tâches banales, faites régulièrement, et la liste ci-dessous couvre l'essentiel des façons dont les sites WordPress sont réellement compromis : plugins obsolètes, identifiants faibles ou volés, permissions de fichiers trop larges et infections que personne n'a remarquées.

Chaque point indique quoi vérifier et comment. Les commandes supposent WP-CLI en SSH ; chacune a aussi son équivalent dans wp-admin ou le gestionnaire de fichiers. Prévoyez 30 à 45 minutes pour le premier passage. Les suivants prennent environ dix minutes, car il s'agit seulement de confirmer que rien n'a changé.

Mises à jour

  1. Le cœur de WordPress est à la dernière version. Allez dans Tableau de bord, puis Mises à jour, ou lancez wp core version et wp core check-update. Les versions de sécurité du cœur sont corrigées rapidement, et les attaquants se mettent à chercher les sites non corrigés en quelques jours.
  2. Tous les plugins sont à jour. Lancez wp plugin list --update=available. Les plugins obsolètes sont la voie d'intrusion la plus courante sur WordPress : si vous ne faites qu'un seul point de cette liste, faites celui-ci. Sur un site qui rapporte de l'argent, lisez d'abord le journal des modifications et gardez une sauvegarde avant de mettre à jour.
  3. Tous les thèmes sont à jour, y compris le thème parent si vous utilisez un thème enfant. wp theme list --update=available montre ce qui est en retard.
  4. Les plugins et thèmes inutilisés sont supprimés, pas seulement désactivés. Un code inactif peut quand même être appelé directement par son URL : un plugin vulnérable que vous avez désactivé reste donc une porte d'entrée. Gardez un thème par défaut en secours et supprimez les autres.

Identifiants et accès

  1. Chaque compte administrateur a un mot de passe unique et robuste. Utilisez un gestionnaire de mots de passe et ne réutilisez jamais celui d'un autre service. Des mots de passe issus de bases de données piratées sont testés sur les connexions WordPress jour et nuit ; le guide sur les attaques par force brute explique à quoi ressemble ce trafic.
  2. La liste des utilisateurs ne contient aucun compte inconnu. Lancez wp user list --role=administrator et vérifiez chaque nom et chaque e-mail. Un nouvel administrateur que vous n'avez pas créé est l'un des signes les plus nets d'une compromission.
  3. L'authentification à deux facteurs est activée pour chaque administrateur. Elle évite qu'un mot de passe volé suffise. Cela vaut aussi pour les éditeurs et les gestionnaires de boutique s'ils peuvent publier ou modifier des commandes.
  4. Les identifiants d'hébergement, de base de données et de SSH sont distincts de la connexion WordPress. Si un seul mot de passe ouvre tout, une seule fuite fait tout perdre. Pour l'accès au serveur, les clés SSH sont plus sûres que les mots de passe ; voir clés SSH ou mots de passe pour WordPress.

Fichiers et configuration

  1. Les permissions des fichiers suivent le schéma standard : 755 pour les dossiers et 644 pour les fichiers, plus strict pour wp-config.php. Listez ce qui est plus large avec find . -type f -perm /o+w. Le guide des permissions de fichiers donne le schéma complet et les commandes pour corriger.
  2. wp-config.php est verrouillé. Il contient le mot de passe de votre base de données et vos clés secrètes : il ne doit pas être lisible par les autres utilisateurs du serveur (600 ou 640 si votre hébergeur le permet), et WordPress peut le charger depuis un dossier au-dessus de la racine web. Voir comment sécuriser wp-config.php.
  3. Aucun fichier PHP inconnu dans wp-content/uploads. Ce dossier sert aux images et aux documents : des fichiers PHP y sont presque toujours malveillants. Lancez find wp-content/uploads -name "*.php". Un résultat vide est ce que vous voulez.
  4. Les fichiers du cœur correspondent aux sommes de contrôle officielles. Lancez wp core verify-checksums. Tout fichier signalé comme modifié ou inattendu mérite un examen, car les attaquants modifient souvent des fichiers du cœur pour cacher une porte dérobée. Le guide d'intégrité des fichiers du cœur explique comment lire le résultat.

Sauvegardes et surveillance

  1. Une sauvegarde récente existe et a été restaurée au moins une fois. Une sauvegarde jamais testée est un pari. Restaurez-en une sur une copie de préproduction et vérifiez que le site se charge. Gardez des copies hors du serveur, et rappelez-vous qu'une sauvegarde peut contenir une infection ; voir la sécurité de l'hébergement géré pour comprendre pourquoi une sauvegarde n'est pas une analyse.
  2. Google Search Console est connectée et n'affiche aucun problème de sécurité. Google repère souvent un piratage, comme des pages de spam ou des redirections, avant le propriétaire, et le rapport Problèmes de sécurité est l'endroit où il vous le dit.
  3. Quelque chose vérifie l'intégrité des fichiers et les motifs de malwares selon un calendrier. Ce peut être vous, un plugin ou un service automatisé. Chaque semaine est un rythme raisonnable pour la plupart des sites, et la fréquence des analyses explique quand aller plus vite.

Si un point de la liste échoue

Corrigez d'abord ce qui coûte peu : les mises à jour, la suppression du code inutilisé et le changement des mots de passe. Passez ensuite aux permissions et à la configuration. Si vous trouvez un fichier que vous ne savez pas expliquer, un administrateur que vous n'avez pas créé ou du PHP dans le dossier uploads, considérez le site comme possiblement compromis et suivez la vérification de piratage en cinq minutes avant de changer autre chose, afin de ne pas détruire de preuves ni laisser à l'attaquant son chemin de retour.

Comment SiftWP aide

SiftWP automatise les points de cette liste qui portent sur les fichiers, les numéros 9 à 12 et le numéro 15 : permissions, wp-config.php, dossier uploads, sommes de contrôle du cœur et motifs de malwares. Il s'exécute comme une analyse hebdomadaire permanente via SSH, sans plugin sur votre site, de sorte que ces contrôles ont lieu sans dépendre de la mémoire de quiconque. Les mises à jour, les mots de passe et les sauvegardes restent à votre charge ou à celle de votre hébergeur.

Commencez avec des crédits gratuits, sans carte bancaire