
| Nom du plugin | Plugin de shortcode de schéma WordPress |
|---|---|
| Type de vulnérabilité | Scripts intersites (XSS) |
| Numéro CVE | CVE-2026-1575 |
| Urgence | Faible |
| Date de publication du CVE | 2026-03-23 |
| URL source | CVE-2026-1575 |
XSS stocké par un contributeur authentifié via shortcode (Schema Shortcode <= 1.0) — Ce que les propriétaires de sites WordPress doivent faire maintenant
Version courte : Une vulnérabilité de script intersite (XSS) stockée affectant le plugin WordPress “Schema Shortcode” (versions jusqu'à et y compris 1.0) permet à un utilisateur authentifié avec des privilèges de contributeur de stocker du JavaScript dans du contenu qui est ensuite rendu à d'autres utilisateurs (ou administrateurs) sans échappement ou assainissement appropriés. Bien que la complexité technique directe pour exploiter ce problème soit faible, le risque dans le monde réel dépend des rôles sur le site, de l'utilisation du plugin et de l'interaction des utilisateurs privilégiés avec le contenu infecté. Cet article explique le problème en termes simples, l'impact sur votre site, des étapes pratiques de détection et d'atténuation, comment renforcer WordPress et le code du plugin, et comment un pare-feu d'application web (WAF) comme WP‑Firewall peut aider à réduire immédiatement votre exposition.
Remarque : cet article fournit des conseils défensifs et des étapes de remédiation sûres. Il ne fournit pas de charges utiles d'exploitation ou d'instructions d'exploitation étape par étape.
Table des matières
- Qu'est-ce que le XSS stocké et pourquoi les shortcodes sont importants
- Comment ce problème spécifique fonctionne (résumé non technique)
- Évaluation de la gravité et du risque
- Scénarios d'exploitation réalistes
- Actions immédiates (atténuations à court terme)
- Détection : comment trouver du contenu suspect et des indicateurs
- Corrections au niveau du code et meilleures pratiques de divulgation responsable
- Recommandations WAF / patching virtuel
- Réponse à l'incident et récupération après exploitation
- Renforcement à long terme et hygiène des rôles
- Comment WP‑Firewall aide (plan gratuit et options de mise à niveau)
- Liste de contrôle : actions rapides à entreprendre dès maintenant
- Réflexions finales
Qu'est-ce que le XSS stocké et pourquoi les shortcodes sont importants
Le script intersite (XSS) stocké se produit lorsqu'un acteur malveillant place du JavaScript ou du HTML exécutable dans un stockage de données persistant (généralement la base de données WordPress en tant que contenu de post, commentaire ou champ) et que ce contenu est ensuite rendu dans les navigateurs pour d'autres utilisateurs. Comme la charge utile est stockée sur votre site, chaque visiteur qui charge la page qui rend le contenu stocké peut être affecté.
Les shortcodes sont un élément de base courant de WordPress. Les plugins enregistrent des shortcodes qui permettent aux auteurs de contenu d'insérer des éléments dynamiques à l'aide d'une balise compacte comme [exemple attr="valeur"]. Les plugins traitent ces balises côté serveur et produisent du HTML pour les visiteurs. Si un gestionnaire de shortcode accepte une entrée non fiable et renvoie ensuite du HTML brut ou du contenu de script sans échappement (ou utilise des attributs non sécurisés), un XSS stocké peut en résulter.
Dans ce cas, la vulnérabilité survient parce qu'un utilisateur de niveau contributeur peut soumettre du contenu qui finit par être passé par le rendu de shortcode du plugin et émis sur des pages sans une sanitation de sortie suffisante.
Comment ce problème spécifique fonctionne (résumé non technique)
- Le plugin expose un shortcode qui peut être ajouté aux articles ou aux pages.
- Un contributeur (rôle d'utilisateur authentifié) peut créer ou éditer des articles et inclure ce shortcode avec des paramètres ou du contenu qui incluent des chaînes de type HTML ou JavaScript.
- Le gestionnaire de shortcode du plugin ne sanitize pas ou n'échappe pas adéquatement les valeurs fournies par l'utilisateur avant de les rendre sur le frontend.
- Lorsque la page contenant le shortcode malveillant est vue (par un autre visiteur, un modérateur ou un administrateur), le script intégré s'exécute dans le contexte du navigateur de ce visiteur.
- L'attaquant peut utiliser le script injecté pour des objectifs XSS typiques : extraction de jetons de session, redirection des visiteurs, injection de contenu supplémentaire ou chargement de ressources malveillantes. L'impact dépend des utilisateurs qui voient la page et des privilèges qu'ils détiennent.
Important: Les utilisateurs contributeurs ne sont pas des administrateurs complets, mais ils peuvent créer des articles. Si votre flux de travail éditorial inclut des contributeurs de confiance, l'impact peut être plus élevé ; si les contributeurs ne sont pas de confiance (permettant à du contenu fourni par l'utilisateur d'être édité avec peu de révision), le risque augmente.
Évaluation de la gravité et du risque
- Contexte de style CVSS : Il s'agit d'un XSS stocké authentifié. Il nécessite des privilèges d'attaquant limités (Contributeur). L'exécution directe de code au niveau système est peu probable, mais un compromis côté client (navigateur) est possible.
- Impact commercial : Si un administrateur ou un éditeur voit le contenu compromis, l'attaquant pourrait exécuter des scripts qui effectuent des actions privilégiées dans l'interface admin au nom de l'admin connecté (effets similaires à CSRF), ou installer des portes dérobées, créer de nouveaux comptes admin via des requêtes cachées, exfiltrer des cookies sensibles (s'ils ne sont pas HTTP-only), ou exploiter l'ingénierie sociale pour un compromis plus large.
- Complexité de l'attaque : Faible à modéré pour un attaquant déterminé qui peut créer du contenu en tant que contributeur. Nécessite que la victime (utilisateur du site avec des privilèges suffisants ou visiteur) charge la page infectée.
- Exploitabilité : Moyen lorsque les contributeurs sont nombreux et que la révision est légère. Faible dans des flux de travail éditoriaux strictement contrôlés où tout le contenu est révisé avant publication et où les contributeurs ne peuvent pas publier sans approbation.
En résumé : considérez cela comme une menace significative pour les sites Web qui permettent aux contributeurs d'ajouter des shortcodes ou d'inclure des paramètres de shortcode arbitraires dans le contenu des articles, surtout lorsque des utilisateurs privilégiés naviguent sur ce contenu.
Scénarios d'exploitation réalistes
- Visiteurs anonymes du front-end affectés
- Un contributeur malveillant publie un article qui inclut le shortcode vulnérable. Les visiteurs voient l'article et le script injecté s'exécute dans leurs navigateurs, permettant le clickjacking, les redirections, l'insertion de spam ou le suivi.
- Compromis ciblé sur les administrateurs
- L'attaquant crée un article ou un brouillon contenant une charge utile XSS et lie l'admin à celui-ci via un e-mail de phishing ou un message de chat. Une fois que l'admin clique et voit la page tout en étant connecté, le script utilise la session admin pour effectuer des actions uniquement disponibles pour les admins (créer de nouveaux comptes admin, changer des plugins, télécharger des portes dérobées) en émettant des requêtes authentifiées.
- Injection de contenu persistante à travers les modèles
- Si la sortie du shortcode est utilisée dans des widgets, des extraits ou dans des sections de la page d'accueil où de nombreux utilisateurs ou membres du personnel prévisualisent le contenu, une exposition plus large se produit.
- Exposition de la chaîne d'approvisionnement ou multi-site
- Sur les installations multisites ou les environnements de développement/staging qui partagent des rôles d'utilisateur ou des privilèges au niveau du réseau, l'impact peut s'étendre au-delà d'un seul site.
Actions immédiates (atténuations à court terme)
Si vous gérez des sites WordPress, prenez ces mesures immédiates et prioritaires :
- Mettez à jour le plugin si une version corrigée est publiée
– C'est la seule remédiation la plus autoritaire. Si le développeur publie une version corrigée, mettez à jour via l'admin WordPress ou WP-CLI immédiatement. - S'il n'y a pas de correctif officiel disponible :
– Désactivez temporairement le plugin sur les sites où il est actif, surtout si les contributeurs peuvent publier du contenu qui atteint des pages publiques ou est vu par des admins.
– Alternativement, désactivez le gestionnaire de shortcode pour empêcher le plugin de rendre le shortcode. Vous pouvez supprimer un shortcode enregistré avec :<?php;
– Si vous ne connaissez pas le tag de shortcode, désactivez temporairement le plugin complètement.
- Limitez l'accès des contributeurs
– Changez le flux de travail des contributeurs : exigez que les contributeurs soumettent des brouillons pour révision plutôt que de publier immédiatement.
– Supprimez la capacité des comptes contributeurs d'ajouter des shortcodes ou d'intégrer du HTML. Vous pouvez ajuster les capacités des utilisateurs avec un plugin de gestion des rôles ou par programmation. - Renforcez qui peut voir du contenu non fiable
– Ne révisez pas les publications non fiables tout en étant connecté avec des privilèges d'admin. Utilisez un compte de réviseur séparé avec des droits limités ou prévisualisez le contenu déconnecté. - Ajoutez des règles de WAF / patch virtuel immédiates
– Utilisez votre pare-feu pour bloquer les requêtes qui incluent du contenu suspect ressemblant à un script dans les paramètres de shortcode, ou bloquez les publications créées par des comptes de contributeurs qui incluent"<script","onerror=","javascript:"et des indicateurs similaires. (Voir la section WAF ci-dessous pour des conseils sur les règles.) - Scannez maintenant pour du contenu suspect
– Recherchez dans vos publications des shortcodes et des chaînes suspectes (voir la section Détection). - Auditez l'activité récente des contributeurs.
– Identifiez les publications, pages et révisions créées ou modifiées récemment par des comptes contributeurs. Examinez-les avant de permettre leur publication.
Détection : comment trouver du contenu suspect et des indicateurs
Vous devez déterminer si un contenu malveillant a déjà été stocké et où. Ci-dessous se trouvent des étapes de détection sûres et pratiques.
- Recherchez le contenu des publications pour les shortcodes du plugin
- Si vous connaissez le nom du shortcode (par exemple,
[schémaou[schéma_shortcode), recherchez-le : - WP-CLI :
wp post list --post_type=post,page --format=csv --fields=ID,post_title | while IFS=, read -r ID TITLE; do
- SQL :
SELECT ID, post_title, post_type;
- Si vous connaissez le nom du shortcode (par exemple,
- Recherchez des tokens HTML ou JS suspects
- Rechercher
<script,JavaScript :,onerror=,onload=, ou des variantes encodées : - SQL :
SELECT ID, post_title;
- Vérifiez également la table des révisions (wp_posts où post_type = ‘revision’).
- Rechercher
- Vérifiez l'activité des auteurs
- Identifiez les publications rédigées par des utilisateurs ayant le rôle de Contributeur pendant la période pertinente. Utilisez usermeta pour mapper les ID des utilisateurs aux capacités si nécessaire.
- Journaux du serveur web et journaux WAF
- Inspectez les journaux d'accès pour des demandes répétées à la même URL de publication ou des appels admin-ajax qui incluaient du contenu de shortcode dans les corps POST.
- Vérifiez les journaux WAF pour des demandes bloquées liées à des modèles de script.
- Indicateurs du navigateur
- Si des visiteurs signalent des redirections inattendues, des pop-ups ou un contenu de page modifié, examinez le code source de la page pour des scripts injectés.
- Utiliser des outils de scan
- Effectuez une analyse de malware sur l'ensemble du site et un scanner XSS DOM pour détecter des scripts injectés qui peuvent ne pas être visibles dans le contenu brut des publications (par exemple, injectés dans des zones de widget ou du PHP de thème).
Corrections au niveau du code et pratiques de programmation sûres
Si vous êtes un développeur qui maintient le plugin ou un correctif spécifique au site, suivez les principes de codage sécurisé :
- Nettoyez toutes les entrées et échappez à la sortie
- Traitez toute valeur fournie par un compte à privilèges inférieurs comme non fiable.
- Pour les attributs qui doivent être du texte brut : utilisez
assainir_champ_texte()ouesc_attr(). - Pour les attributs qui doivent autoriser un HTML limité : utilisez
wp_kses()avec une liste autorisée stricte. - À la sortie, échappez en utilisant
esc_html(),esc_attr(), ouwp_kses_post()selon le contexte.
- Contrôles de capacité
Avant de traiter ou de stocker du HTML brut provenant d'un éditeur ou d'un paramètre de shortcode, vérifiez que l'utilisateur actuel aunfiltered_htmlla capacité ou une autre capacité appropriée :if ( ! current_user_can( 'unfiltered_html' ) ) { - Évitez d'écho directement les données utilisateur brutes
Même lors de la génération de HTML pour un shortcode, construisez une sortie structurée et échappez chaque attribut :$title = isset( $atts['title'] ) ? sanitize_text_field( $atts['title'] ) : '';'<div class='schema-title'>"$atts = shortcode_atts( array("</div>";"<div class='schema-desc'>" . wp_kses( $desc, $allowed ) . "</div>"; - Mettez sur liste blanche le HTML autorisé plutôt que de mettre sur liste noire
Préférerwp_kses()avec un tableau strict d'étiquettes/attributs autorisés plutôt que de supprimer des étiquettes spécifiques via regex. - Traitez correctement le contenu du shortcode
Si le shortcode accepte du contenu (c'est-à-dire,[shortcode]contenu[/shortcode]) assurez-vous que le contenu est passé parwp_kses_post()ou échappé strictement. - Tests unitaires et tests d'intégration
Ajoutez des tests unitaires qui couvrent les cas d'entrée malveillants : chaînes XSS typiques, attributs HTML comme onerror, URI de données et charges utiles encodées. Les tests doivent vérifier que la sortie n'inclut pas de script exécutable.
Si vous corrigez le plugin localement, placez toutes les corrections temporaires dans un mu-plugin ou un plugin spécifique au site afin qu'elles survivent aux mises à jour de thème et aux suppressions de plugin.
Exemple de filtre sûr pour assainir la sortie des shortcodes (patch au niveau du site)
Placez ce qui suit en tant que MU-plugin (déposez dans wp-content/mu-plugins/) :
<?php
/**
* Site-level defense: sanitize output of known vulnerable shortcode tag.
* Replace 'schema' with the actual shortcode tag used by the plugin.
*/
add_filter( 'do_shortcode_tag', function( $output, $tag, $attr ) {
// Only operate on the target shortcode tag
if ( 'schema' !== $tag ) {
return $output;
}
// Whitelist of allowed tags/attributes for output
$allowed_tags = array(
'a' => array( 'href' => true, 'title' => true, 'rel' => true ),
'span' => array( 'class' => true ),
'div' => array( 'class' => true ),
'p' => array(),
'strong' => array(),
);
// Strip any <script> or event-handlers and ensure safe output
return wp_kses( $output, $allowed_tags );
}, 10, 3 );
Il s'agit d'une atténuation à court terme : un plugin bien construit doit valider et échapper à la source (avant de retourner $output).
Recommandations WAF / patching virtuel
Si vous ne pouvez pas mettre à jour le plugin immédiatement ou si un correctif n'est pas encore disponible, le WAF est votre levier le plus rapide pour réduire le risque. Voici des idées de règles WAF défensives que vous pouvez mettre en œuvre sans divulguer les charges utiles d'exploitation :
- Bloquez les publications/documents rédigés par des comptes de contributeurs contenant des jetons ressemblant à des scripts.
Règle : Si une requête POST àwp-admin/post.phpouadmin-ajax.phpest faite par un utilisateur identifié comme rôle=contributeur et que le post_content contient<scriptouJavaScript :ouonerror=, bloquez/mask le requête et alertez les administrateurs. - Bloquez ou assainissez les réponses qui rendent des shortcodes contenant des marqueurs de script.
Règle : Si une réponse de page contient la sortie du shortcode du plugin et inclut5.ou des gestionnaires d'événements en ligne, supprimez ou bloquez le contenu avant la livraison. - Correspondance de modèle pour l'utilisation suspecte d'attributs.
Bloquez ou assainissez les occurrences deonerror=,onload=,onclick=,JavaScript :dans les attributs à l'intérieur du contenu lorsque le contenu provient d'auteurs non administrateurs. - Limitez l'activité suspecte des éditeurs.
Appliquez des limites de taux plus strictes aux contributeurs qui créent ou mettent à jour des publications contenant des shortcodes avec des longueurs de paramètres inhabituelles ou des charges utiles encodées. - Limitez le HTML autorisé pour les opérations d'édition des contributeurs.
Si possible, demandez au WAF de canoniser/normaliser le contenu POST (par exemple, décoder l'encodage URL) et de supprimer les requêtes qui incluent des modèles HTML non autorisés.
Avertissement : Les règles WAF basées sur des regex peuvent générer des faux positifs. Commencez en mode détection uniquement (surveillance) et affinez avant de bloquer.
Si vous utilisez WP‑Firewall, activez les règles de patching virtuel gérées qui ciblent les balises script et les attributs suspects dans la sortie de shortcode des utilisateurs à privilèges inférieurs. Cela fournit la mitigation la plus rapide pendant que vous coordonnez un patch de plugin.
Réponse à l'incident et récupération après exploitation
Si vous découvrez des preuves que cette vulnérabilité a été exploitée, procédez avec un plan de réponse aux incidents standard :
- Contenir
- Mettez le contenu affecté hors ligne (dépubliez le post ou définissez-le comme brouillon).
- Désactivez le plugin vulnérable jusqu'à ce qu'il soit patché ou atténué.
- Appliquez des blocs WAF pour les modèles de charge utile identifiés.
- Préservez et collectez des preuves
- Exportez les journaux du serveur, les dumps de base de données (lecture seule) et les journaux WAF pour une analyse judiciaire.
- Notez les identifiants des utilisateurs, les IP, les horodatages et les corps de requêtes HTTP.
- Éradiquez et remédiez
- Supprimez le contenu malveillant ou revenez à une révision de post propre.
- Faites tourner les clés API et les secrets qui ont pu être exposés.
- Forcez les réinitialisations de mot de passe pour les utilisateurs à risque et invalidez les sessions actives pour les comptes compromis (utilisez l'écran WP Users > Sessions ou un plugin pour invalider les sessions).
- Vérifiez la présence de nouveaux utilisateurs administrateurs, de fichiers modifiés et de téléchargements de plugins/thèmes non autorisés.
- Récupérer
- Restaurez à partir d'une sauvegarde valide si nécessaire.
- Après le nettoyage, réactivez le plugin uniquement s'il a été patché et vérifié.
- Passez en revue et renforcez
- Examinez comment le contributeur a pu injecter du contenu et ajustez le flux de travail.
- Ajoutez une surveillance pour détecter des modèles similaires à l'avenir.
- Notifier
- Si des informations sensibles ont été exposées ou que des comptes utilisateurs ont été compromis, informez les parties concernées conformément à vos obligations légales/réglementaires.
Durcissement à long terme et meilleures pratiques
- Principe du moindre privilège
Limitez le nombre d'utilisateurs avec des capacités élevées. Utilisez les rôles avec parcimonie et passez-les en revue chaque trimestre. - Flux de travail éditoriaux stricts
Exigez que les posts des contributeurs soient examinés et publiés par des éditeurs. Évitez d'accorder des droits de publication aux contributeurs sauf si nécessaire. - Politique de sécurité du contenu (CSP)
Implémentez un en-tête CSP robuste pour réduire l'impact des scripts injectés (notez que CSP n'est pas un remplacement pour un échappement approprié, mais c'est une couche supplémentaire). - Renforcez les cookies et les sessions.
Assurez-vous que les cookies de session sont uniquement HTTP et sécurisés ; définissez les attributs SameSite pour atténuer les risques de CSRF. - Tests de sécurité et analyses automatisées
Analyses automatisées périodiques (statiques et dynamiques) plus une révision de code pour les plugins et thèmes à haut risque. - Utilisation contrôlée des plugins
Supprimez ou remplacez les plugins non maintenus. Préférez les plugins qui suivent les meilleures pratiques de sécurité WordPress et qui sont activement maintenus. - Surveillance et enregistrement
Surveillez l'activité des utilisateurs, l'intégrité des fichiers et les alertes WAF. Envoyez des alertes de haute fidélité à votre équipe de sécurité. - Sauvegardes
Sauvegardes quotidiennes avec des procédures de restauration testées. Les instantanés doivent couvrir la base de données et les fichiers.
Comment WP‑Firewall aide (et comment commencer gratuitement)
WP‑Firewall protège les sites WordPress grâce à des contrôles en couches qui correspondent directement aux types de risques décrits ci-dessus : règles WAF gérées (y compris des correctifs virtuels pour les vulnérabilités émergentes des plugins), analyse et suppression de logiciels malveillants, filtrage conscient des rôles et des requêtes, et alertes de sécurité adaptées aux flux de travail des administrateurs.
Si vous souhaitez réduire votre exposition dès maintenant et essayer un WAF géré et un scanner, nous proposons un plan de base gratuit qui est parfait pour une protection immédiate et des tests.
Protégez votre site gratuitement — Commencez avec WP‑Firewall Basic
Notre plan de base (gratuit) fournit une protection essentielle pour arrêter les attaques courantes et réduire le risque de vulnérabilités basées sur des plugins :
- Protection essentielle : pare-feu géré et WAF
- Bande passante illimitée sous protection
- Scanner de logiciels malveillants pour détecter les scripts injectés et les fichiers suspects
- Mesures d'atténuation des 10 principaux risques OWASP
Si vous voulez le niveau suivant d'automatisation et de contrôle, notre plan standard ajoute la suppression automatique de logiciels malveillants et le simple blocage/déblocage d'IP. Pour les équipes qui ont besoin d'une couverture proactive des vulnérabilités et de rapports, notre plan Pro inclut des rapports de sécurité mensuels, un correctif virtuel automatique et des options de support premium.
Inscrivez-vous au plan gratuit ou comparez les plans ici :
https://my.wp-firewall.com/buy/wp-firewall-free-plan/
(Vous pouvez activer le pare-feu rapidement et appliquer des correctifs virtuels qui atténuent les modèles XSS basés sur des shortcodes pendant que vous mettez à jour ou supprimez des instances de plugins.)
Requêtes et commandes de chasse pratiques
Voici des requêtes et commandes de niveau administrateur sûres pour rechercher sur votre site — utilisez avec précaution et de préférence sur une copie de staging si vous avez un site très volumineux.
- Recherche WP-CLI pour les occurrences de shortcodes :
# Trouvez des publications qui contiennent '[' suivi du nom de balise de shortcode attendu 'schema'
- SQL pour trouver des tokens suspects :
SELECT ID, post_title, post_author, post_date;
- Listez les activités récentes par rôle de contributeur :
// En PHP ou via une petite page d'administration - pseudocode
Liste de contrôle : actions rapides à entreprendre dès maintenant
- Identifiez tous les sites utilisant le plugin vulnérable et listez les versions du plugin.
- Si un correctif est disponible, mettez à jour immédiatement.
- Si aucun correctif n'est disponible, désactivez le plugin ou retirez temporairement le gestionnaire de shortcode.
- Scannez les publications (y compris les révisions) pour des chaînes ressemblant à des scripts et des shortcodes.
- Restreignez les flux de publication des contributeurs et évitez les aperçus administratifs de contenu non fiable.
- Appliquez des correctifs virtuels WAF qui bloquent les jetons liés aux scripts provenant de contenu d'origine contributeur.
- Faites tourner les identifiants et invalidez les sessions si vous soupçonnez une exposition administrative.
- Vérifiez que les sauvegardes sont intactes et testez un plan de récupération.
Réflexions finales
Ce problème de XSS stocké est un parfait exemple de pourquoi même les rôles à faible privilège deviennent un chemin d'attaque si un contenu non fiable est transmis par un plugin qui ne nettoie pas strictement la sortie. Les défenses qui se concentrent uniquement sur le filtrage périmétrique manquent le risque interne des flux de contenu : les contributeurs peuvent être mal utilisés, et le navigateur est un puissant environnement d'exécution.
Des mises à jour rapides et un patch virtuel basé sur WAF réduisent considérablement le risque immédiat. Mais les meilleurs résultats combinent une containment à court terme (désactiver ou patcher le plugin, appliquer des règles WAF) avec des changements à long terme : privilège minimal, contrôles éditoriaux et corrections au niveau du code qui nettoient et échappent au point de sortie.
Si vous souhaitez de l'aide pour auditer vos sites pour une exposition ou configurer des correctifs virtuels qui atténuent spécifiquement les XSS basés sur des shortcodes et du contenu sans impacter le trafic légitime, WP‑Firewall peut vous aider. Commencez avec notre protection de base gratuite et passez à un niveau supérieur si vous souhaitez une suppression automatique et un patch virtuel géré.
Restez en sécurité et traitez chaque plugin de rendu de contenu avec une suspicion saine jusqu'à ce que vous ayez validé ses pratiques de nettoyage de sortie.
— Équipe de sécurité WP-Firewall
