92 % des failles WordPress viennent des plugins. Pas du cœur WordPress, des extensions que vous avez installées, oubliées, et peut-être pas mises à jour depuis des mois. Cette statistique n’est pas nouvelle, mais en 2026, avec une multiplication des alertes DGSSI sur des plugins critiques (WooCommerce, Ally, wpDiscuz, Everest Forms Pro), elle prend une résonance particulière.

L’audit de sécurité des plugins n’est pas une tâche de geek paranoïaque. C’est une responsabilité basique pour quiconque gère un site WordPress en production, que ce soit un blog personnel ou une boutique e-commerce traitant des données clients. Voici le guide complet pour faire cet audit correctement, régulièrement, et de façon automatisée.

Comprendre la surface d’attaque réelle de votre installation WordPress

Avant d’auditer quoi que ce soit, il faut comprendre ce qu’on cherche à protéger. Une installation WordPress typique comporte :

Le cœur WordPress : maintenu par l’équipe WordPress, patchable automatiquement, relativement sûr si mis à jour. Les vulnérabilités core sont rares et patchées rapidement.

Les plugins : c’est là que tout se joue. Un site WordPress moyen installe entre 15 et 30 plugins. Chacun est une base de code indépendante, maintenu par un développeur différent, avec des niveaux de rigueur de sécurité extrêmement variables.

Le thème : souvent négligé dans les audits, les thèmes peuvent contenir des vulnérabilités similaires aux plugins, particulièrement les thèmes complexes avec des constructeurs de pages intégrés.

Les fichiers de configuration : wp-config.php, .htaccess, les fichiers d’environnement. Leur exposition ou mauvaise configuration ouvre des portes directes.

L’inventaire : votre première étape incontournable

Vous ne pouvez pas sécuriser ce que vous ne connaissez pas. L’inventaire complet de vos plugins est la fondation de tout audit. Il doit inclure les plugins actifs ET inactifs, un plugin inactif reste du code exécutable qui peut être exploité.

Via le dashboard WordPress : Extensions → Extensions installées. Pour chaque plugin, notez le nom, la version installée, la date de dernière mise à jour, et le statut (actif/inactif). Si vous gérez plusieurs sites, utilisez un outil centralisé comme ManageWP, MainWP, ou WP Remote pour avoir cette vue consolidée.

La règle d’or : si vous n’utilisez pas un plugin, supprimez-le. Pas juste désactivez, supprimez. Un plugin désactivé laisse ses fichiers sur le serveur, et certaines vulnérabilités sont exploitables même sur un plugin inactif.

# Inventaire des plugins via WP-CLI (en SSH sur votre serveur)
# Liste tous les plugins avec nom, version, statut et date de mise à jour

wp plugin list --fields=name,version,status,update,update_version --format=table

# Identifier les plugins qui ont des mises à jour disponibles
wp plugin list --update=available --fields=name,version,update_version

# Lister les plugins inactifs (candidats à la suppression)
wp plugin list --status=inactive --fields=name,version

# Supprimer un plugin inactif (remplacez PLUGIN-NAME)
wp plugin delete PLUGIN-NAME

Les 5 critères d’évaluation de la sécurité d’un plugin

Pour chaque plugin de votre inventaire, appliquez cette grille d’évaluation systématique.

1. Fréquence des mises à jour : rendez-vous sur la page wordpress.org du plugin et vérifiez la date de la dernière mise à jour. Un plugin non mis à jour depuis plus de 6 mois dans un écosystème aussi actif que WordPress est un signal d’alarme. Pas nécessairement une condamnation, certains plugins stables n’ont simplement rien à corriger, mais ça mérite investigation.

2. Historique des CVEs : cherchez le nom du plugin sur WPScan Vulnerability Database ou sur nvd.nist.gov. Un plugin avec un historique dense de CVEs n’est pas nécessairement à éviter (ça peut indiquer un développeur actif qui répond aux rapports), mais un plugin avec des CVEs non patchées depuis des mois est à désinstaller immédiatement.

3. Compatibilité avec votre version WordPress : la page wordpress.org indique « Testé jusqu’à WordPress X.X ». Si votre version est significativement plus récente, le plugin peut fonctionner mais n’a pas été validé pour cette version. Optez pour des plugins testés avec votre version exacte.

4. Nombre d’installations actives et avis utilisateurs : un plugin avec des centaines de milliers d’installations et une note de 4.5+ sur 5 bénéficie d’une surveillance communautaire dense. Les problèmes sont rapportés rapidement et publiquement. Un plugin obscur avec 500 installations n’a pas ce filet de sécurité.

5. Réputation du développeur : qui maintient ce plugin ? Une entreprise reconnue avec un portfolio de plugins populaires ? Un développeur individuel identifiable ? Un compte anonyme créé récemment ? La réponse impacte directement votre niveau de confiance dans la maintenance sécurité à long terme.

Outils d’audit automatisé : ce qui fonctionne vraiment en 2026

L’audit manuel est nécessaire mais insuffisant à grande échelle. Ces outils automatisent la détection des problèmes de sécurité :

WPScan : le scanner de référence pour la sécurité WordPress. Disponible en SaaS ou en CLI open source, il scanne votre installation et compare les plugins installés contre sa base de données de vulnérabilités (mise à jour quotidiennement). Indispensable.

Patchstack : plateforme de monitoring qui alerte en temps réel dès qu’une vulnérabilité est divulguée pour un plugin que vous utilisez. Le plan gratuit couvre jusqu’à 3 sites. Intégration WordPress native.

Wordfence Security : plugin WordPress qui combine scanner de malware, WAF (Web Application Firewall), et monitoring de fichiers en temps réel. Sa base de signature est régulièrement mise à jour et il intègre des alertes de vulnérabilités de plugins.

Sucuri SiteCheck : scanner externe gratuit qui analyse votre site depuis l’extérieur (comme le verrait un attaquant) pour détecter les malwares, les blacklistings, et les configurations exposées.

Mettre en place une procédure d’audit récurrente

Un audit ponctuel ne suffit pas. La sécurité WordPress est une pratique continue, pas un état. Voici la cadence recommandée :

Quotidien (automatisé) : vérification des mises à jour disponibles, monitoring Wordfence ou Patchstack. Ces vérifications doivent être automatiques, vous ne pouvez pas les faire manuellement tous les jours.

Hebdomadaire : revue des alertes de sécurité reçues, application des mises à jour de plugins en staging avant production si vous avez le budget pour ça.

Mensuel : audit complet avec WPScan, revue de l’inventaire des plugins (en supprimer que vous n’utilisez plus), vérification des comptes administrateurs WordPress.

Trimestriel : audit des fichiers du serveur (recherche de web shells, de fichiers PHP dans wp-content/uploads), revue des logs d’accès, test de restauration depuis sauvegarde.

Répondre aux alertes DGSSI et aux bulletins de sécurité

La DGSSI (Direction générale de la sécurité des systèmes d’information) publie régulièrement des bulletins sur les vulnérabilités WordPress critiques. Ces bulletins concernent des plugins très répandus (WooCommerce, Elementor, Yoast SEO, et al.) et signalent un niveau de risque élevé.

Votre procédure de réponse à un bulletin DGSSI doit être définie à l’avance : identifier si vous utilisez le plugin concerné (inventaire centralisé !), vérifier la version installée vs la version affectée, appliquer le correctif en urgence (la fenêtre d’action est souvent de quelques heures avant exploitation active), et documenter l’action dans votre registre de maintenance.

Si vous gérez des sites pour des clients, formalisez cette procédure dans un contrat de maintenance. La RGPD vous impose de notifier vos clients en cas de violation de données, autant éviter d’en arriver là grâce à une réponse rapide aux CVEs.

L’impact SEO d’une compromission : un coût souvent sous-estimé

Au-delà des implications techniques et légales, une compromission WordPress a un impact SEO souvent dévastateur et durable. Les sites hackés se retrouvent blacklistés par Google Safe Browsing, ce qui déclenche des avertissements dans Chrome pour tous les visiteurs. La récupération d’un tel blacklisting prend généralement 2 à 4 semaines, même après nettoyage complet du site.

En 2026, avec l’indexation rapide via IndexNow et la mise à jour quasi-temps-réel des indexes Google, un site blacklisté perd sa visibilité organique en quelques heures et met des mois à la récupérer entièrement. Le coût d’une compromission se mesure donc en perte de trafic, de leads, de revenus, pas seulement en heures de nettoyage technique.

L’audit sécurité des plugins n’est pas une dépense. C’est une assurance contre un coût bien plus élevé.

Durcissement post-audit : appliquer le principe de moindre privilège

Un audit ne vaut que par les actions qu’il déclenche. Le premier durcissement après inventaire est l’application du moindre privilège : désactiver l’éditeur de fichiers dans l’admin, restreindre les capacités des rôles, interdire l’exécution de PHP dans le dossier des uploads et verrouiller les permissions de fichiers. Ces mesures neutralisent l’essentiel des escalades de privilèges même quand un plugin présente une faille.

Ce cloisonnement complète l’inventaire et l’évaluation des critères déjà décrits : auditer sans durcir laisse la porte ouverte. La rigueur de modélisation des droits rejoint celle des Custom Post Types et capabilities personnalisées.

// wp-config.php : reduire la surface d'exploitation
define('DISALLOW_FILE_EDIT', true);   // pas d'editeur de code en admin
define('DISALLOW_FILE_MODS', true);   // pas d'install/maj depuis l'admin
// .htaccess uploads : interdire l'execution de PHP
// <FilesMatch ".php$"> Require all denied </FilesMatch>

Supply chain : auditer ce que vos plugins chargent à distance

La menace de 2026 n’est plus seulement le code du plugin, mais ce qu’il appelle à l’extérieur : scripts CDN tiers, polices distantes, API externes, mises à jour récupérées hors du dépôt officiel. Un plugin légitime peut devenir un vecteur si l’une de ses dépendances distantes est compromise. L’audit doit donc cartographier tous les appels sortants et figer les ressources critiques en local quand c’est possible.

Cette attaque par la chaîne d’approvisionnement fait l’objet de notre dossier dédié sur les attaques supply chain via les plugins WordPress, qui détaille les compromissions récentes et les contre-mesures.

# Lister les domaines tiers appeles par le front (audit supply chain)
curl -s https://exemple.fr/ | grep -oE 'https?://[a-zA-Z0-9.-]+' 
  | sed -E 's#https?://##; s#/.*##' | sort -u
# tout domaine inattendu = a investiguer

Plan de réponse à incident : que faire quand un plugin est compromis

La question n’est pas « si » mais « quand ». Un plan de réponse écrit fait gagner les heures décisives : isoler le site (mode maintenance), identifier le plugin et la faille via les logs, restaurer depuis une sauvegarde saine antérieure à la compromission, renouveler tous les secrets (mots de passe, clés salt, jetons API) puis appliquer le correctif avant remise en ligne. Improviser cette séquence en pleine crise multiplie les dégâts.

Ce volet opérationnel transforme l’audit statique en posture de sécurité vivante. Il s’appuie sur des sauvegardes testées et un cache que l’on sait purger entièrement, point traité dans notre comparatif des solutions de cache.

# Sequence de reponse a incident (extrait)
wp maintenance-mode activate
wp plugin deactivate plugin-suspect
# renouveler les cles de securite immediatement
wp config shuffle-salts
wp db import sauvegarde-saine.sql   # restauration anterieure a l'intrusion

Automatiser la surveillance continue : WPScan API et intégration CI

Un audit ponctuel vieillit en quelques jours, au rythme des nouvelles CVE. La parade est l’automatisation : interroger quotidiennement une base de vulnérabilités (WPScan API) avec la liste exacte de vos plugins et versions, et alerter dès qu’une faille connue vous concerne. Intégrée à un pipeline CI ou un cron, cette veille transforme la sécurité en flux continu plutôt qu’en photo périmée.

Cette industrialisation de la veille rejoint la logique des plateformes internes décrite dans notre article sur les Internal Developer Platforms : outiller la sécurité pour qu’elle tourne sans intervention manuelle.

# Alerter si un plugin installe est vulnerable (WPScan API)
import requests
for slug, version in plugins_installes.items():
    r = requests.get(f"https://wpscan.com/api/v3/plugins/{slug}",
                     headers={"Authorization": "Token TOKEN"})
    for cve in r.json().get(slug, {}).get("vulnerabilities", []):
        if version_vulnerable(version, cve):
            alerter(f"{slug} {version} : {cve['title']}")

Avant toute manipulation, assurez-vous de se connecter à wp-admin sans encombre.

Pour bien choisir votre outil, lisez notre analyse comparatif WordPress vs Webflow.

Pour éviter les erreurs de configuration, essayez générer un fichier .htaccess WordPress.

L’audit des extensions doit être complété par ce que le site expose réellement sur le Web. Notre tutoriel d’audit WordPress avec WP Doctor montre comment contrôler les fichiers sensibles, les utilisateurs publics, les en-têtes, le cache et le SEO depuis le terminal.

🩺 Testez gratuitement la santé de votre site
Sécurité, performance et SEO analysés en 30 secondes, avec un score sur 100 et vos 3 priorités. Lancer le scan WordPress gratuit →

Si l’audit révèle déjà des administrateurs ou contenus inconnus, passez à la méthode de nettoyage d’un site WordPress piraté avant toute remise en ligne.

Un audit de securite des extensions n’a de sens qu’avec une version PHP a jour en dessous : consultez notre guide dedie.

WP Admin Lab
· Chef de la rédaction

La rédaction de WP Admin Lab réunit des praticiens WordPress, sécurité et développement web. Nous publions des guides testés en conditions réelles, vérifiés en production et régulièrement mis à jour, sans jargon inutile. Chaque procédure est relue avant publication.