Requis : Charitable Pro 1.8.16+
Note : DonationGuard est actuellement en version bêta dans la version 1.8.16.
DonationGuard est une couche de détection d'attaques de bots en temps réel pour vos formulaires de don. Il surveille les soumissions pour détecter les schémas laissés par les attaquants coordonnés — remplissages de formulaires anormalement rapides, séries de cartes échouées provenant d'adresses IP tournantes, ratios donateur/vue qu'aucun rythme de navigation humaine ne produit — ouvre des enregistrements d'attaques classés par gravité lorsqu'il les voit, et vous alerte au moment où une campagne commence à être ciblée.
Fonctionnalités clés
- Surveillez chaque soumission de don en temps réel pour cinq signaux d'attaque distincts
- Évaluez l'activité par rapport à une base de référence apprise du trafic de dons normal de votre site
- Ouvrez un « enregistrement d'attaque » structuré afin que vous puissiez examiner et agir en masse sur les dons suspects
- Alertez l'administrateur du site par e-mail, par un avertissement dans la barre d'administration et par une notification dans le plugin
- Appliquez un préréglage « Paramètres recommandés » en un clic qui active les modules Honeypot, Time Trap et Rate Limit
- Bloquez les récidivistes par adresse e-mail avec un seuil configurable et une fenêtre de consultation
- Stockez les adresses IP sous forme de hachages unidirectionnels pour un journal d'attaques respectueux du RGPD
- Nettoyez automatiquement les enregistrements d'attaques fermés après une fenêtre de rétention de votre choix
Pourquoi utiliser DonationGuard ?
Les bots de test de cartes ciblent les organisations à but non lucratif car les formulaires de don sont publics, gratuits à soumettre, et indiquent instantanément à l'attaquant si une carte volée fonctionne. Une seule exécution de bot peut poster des centaines de transactions refusées en quelques minutes, gonfler vos frais de passerelle et déclencher des examens de fraude de la part de votre processeur. DonationGuard surveille automatiquement ces schémas et vous permet de réagir en quelques secondes, au lieu de le découvrir auprès de Stripe un jour plus tard.
Exigences
- Charitable Pro 1.8.16 ou version ultérieure
- Une licence Charitable Pro active (requise pour le préréglage Quick Protection, qui active les modules Spam Blocker)
- WordPress 6.0 ou version ultérieure
Démarrage
Activation
- Dans votre administration WordPress, allez dans Charitable > Paramètres.
- Cliquez sur l'onglet Sécurité.
- Cliquez sur le sous-onglet DonationGuard.
- Cochez Activer et cliquez sur Enregistrer les modifications.
DonationGuard commence la surveillance dès la prochaine soumission de don. Le détecteur se limite à un cycle complet toutes les 60 secondes, de sorte qu'une seule pointe d'activité est consolidée en un seul enregistrement d'attaque plutôt qu'en des dizaines de doublons.
Paramètres de DonationGuard

Paramètres recommandés en un clic
Dans l'onglet DonationGuard, vous verrez une carte Protection rapide avec un bouton Appliquer les paramètres recommandés. Cliquer dessus active trois modules Spam Blocker avec des paramètres par défaut raisonnables :
- Honeypot — ajoute un champ invisible que les vrais donateurs ne remplissent jamais
- Time Trap — rejette les soumissions qui arrivent plus rapidement qu'un humain ne pourrait taper
- Rate Limit — limite les soumissions d'un seul visiteur à 10 par fenêtre
Ces modules nécessitent une licence Pro active. Si votre licence est inactive, le bouton est remplacé par un lien Activer la licence.
Options de configuration
Paramètres de détection principaux
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| Activer | case à cocher | Désactivé | Interrupteur principal pour DonationGuard. |
| Sensibilité de détection | sélectionner | Normal | Faible, Normal ou Élevé. Un niveau plus élevé détecte plus d'attaques mais peut signaler des pics de dons légitimes. |
| Destinataire d'alerte supplémentaire | (vide) | Deuxième e-mail facultatif auquel les alertes critiques sont envoyées en copie cachée en plus de l'administrateur du site. | |
| Envoyer un e-mail « Tout est clair » | case à cocher | Désactivé | Envoyer un e-mail de suivi lorsqu'une attaque se termine. |
| Rétention des enregistrements d'attaques | sélectionner | Pour toujours | Supprimer automatiquement les enregistrements d'attaques fermées et ignorées datant de plus de 30 jours, 90 jours, 1 an ou jamais. |
| Hacher les adresses IP (Mode confidentialité) | case à cocher | Désactivé | Stocker des hachages unidirectionnels au lieu d'adresses IP en clair. Désactive l'ajout de liste noire en un clic depuis la revue des attaques. |
Paramètres de blocage des récidivistes
Le blocage des récidivistes arrête les inondations de tests de cartes provenant d'une seule adresse e-mail sans signaler à tort les vrais donateurs qui ont simplement eu des problèmes de carte.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| Activer le blocage des récidivistes | case à cocher | Désactivé | Bloquer les soumissions d'un e-mail avec plusieurs dons non réussis et aucun historique de succès. |
| Bloquer après les tentatives échouées | nombre | 2 | Bloquer une fois que ce nombre de dons non réussis (en attente, échoués, annulés) s'accumule. Recommandé : 2 ou 3. |
| Fenêtre de recherche | sélectionner | 24 heures | Seules les tentatives dans cette fenêtre comptent. Choix : 1 heure, 6 heures, 24 heures, 7 jours, 30 jours, Jamais. |
| Action en cas de correspondance | radio | Bloquer | Bloquer arrête le don. Enregistrer uniquement enregistre la correspondance dans Outils > Journaux mais laisse le don passer. |
| Message d'erreur | texte | (défaut) | Affiché au donateur lorsqu'il est bloqué. Laissez vide pour utiliser le message intégré. |
Préréglage de protection rapide
| Module | Défaut | Ce qu'il fait |
|---|---|---|
| Pot de miel | Désactivé | Ajoute un champ de formulaire invisible que les robots remplissent mais que les humains ne peuvent pas voir. |
| Piège temporel | Désactivé | Rejette les soumissions qui arrivent moins de secondes que le minimum configuré. |
| Limitation du débit | Désactivé | Limite le nombre de soumissions qu'un visiteur unique peut effectuer par fenêtre (par défaut : 10). |
Comment fonctionne la détection
DonationGuard exécute un cycle de détection chaque fois qu'un don entre en statut de mise en attente (via l'action charitable_donation_pending_recorded), limité à un cycle par 60 secondes. Chaque cycle :
- Calcule cinq signaux par rapport à une base d'apprentissage horaire de votre trafic normal.
- Combine ces écarts en un seul score pondéré.
- Mappe le score à un niveau : Avertissement ou Critique.
- Ouvre un nouvel enregistrement d'attaque, escalade un existant ou ferme une attaque silencieuse.
- Envoie des notifications soumises à un délai de 4 heures et à un plafond de 6 e-mails par jour.
Les cinq signaux
| Signal | Ce qu'il surveille |
|---|---|
| Taux de mise en attente | Volume des dons en attente dans la fenêtre récente par rapport à la base d'apprentissage pour cette heure. |
| Ratio | Ratio des dons en attente par rapport aux dons réussis. |
| Ventilation IP | Adresses IP distinctes soumettant dans la fenêtre. Un nombre élevé d'IP est un signal classique de botnet. |
| Taux de refus | Part des refus de la passerelle dans la fenêtre. Les tests de cartes produisent une rafale de refus. |
| Synchronisation | Modèle de temps de soumission. Les robots ont tendance à soumettre beaucoup plus rapidement que les humains. |
Jusqu'à ce que votre site ait collecté suffisamment d'historique de dons pour apprendre sa propre base d'apprentissage, DonationGuard se rabat sur une valeur par défaut statique et sûre (« mode de préchauffage »).
Examen des attaques
Lorsque DonationGuard détecte une attaque, vous disposez de plusieurs moyens pour la consulter et agir.

Barre d'administration et bannière
Les attaques ouvertes apparaissent sous forme d'avertissement dans la barre d'administration WordPress et d'une bannière intégrée sur le tableau de bord Charitable. Cliquez sur l'un ou l'autre pour accéder à l'écran d'examen des attaques.
Écran d'examen des attaques

Situé dans Charitable > Outils > Journaux > Examen des attaques. L'écran répertorie les attaques ouvertes avec le niveau de gravité, la répartition des signaux, le nombre de dons et l'heure d'ouverture. Cliquez sur une attaque pour voir tous les dons suspects regroupés, avec des actions groupées pour les marquer comme spam, les annuler ou rejeter les faux positifs.
Alertes par e-mail
Les alertes critiques sont envoyées à l'administrateur du site et à l'adresse Destinataire d'alerte supplémentaire optionnelle. Chaque e-mail inclut la gravité, les principaux signaux qui l'ont déclenchée, le nombre de dons et un lien direct vers l'écran d'examen des attaques. Le volume d'e-mails est limité à un toutes les 4 heures et 6 par jour, de sorte qu'une attaque prolongée n'encombre pas votre boîte de réception.
Personnalisation
Filtrer la liste des destinataires d'alertes
add_filter( 'charitable_bot_email_recipients', function ( $recipients ) {
$recipients[] = '[email protected]';
return $recipients;
} );
Ajuster les poids des signaux
add_filter( 'charitable_bot_signal_weights', function ( $weights ) {
$weights['ip_fanout'] = 2.0;
return $weights;
} );
Désactiver la fonctionnalité pour un environnement spécifique
add_filter( 'charitable_bot_protection_enabled', '__return_false' );
Dépannage
Le bouton Paramètres recommandés est grisé ou remplacé par un lien Activer la licence
Le préréglage Protection rapide active les modules de blocage de spam qui nécessitent une licence Pro active. Visitez Charitable > Paramètres > Licences et activez votre licence, puis revenez à l'onglet DonationGuard.
Aucun enregistrement d'attaque n'est ouvert malgré une activité suspecte
Confirmez que Activer est coché sous Paramètres > Sécurité > DonationGuard. Le détecteur nécessite également que le filtre général de sécurité charitable_bot_protection_enabled renvoie true. Les 14 premiers jours de détection utilisent une base de référence statique (montée en puissance), qui est intentionnellement conservatrice.
Le blocage des récidivistes signale des donateurs légitimes
Passez Action en cas de correspondance à Enregistrer uniquement (simulation) pendant une semaine. Les correspondances apparaîtront dans Outils > Journaux filtrées par la source DonationGuard afin que vous puissiez les examiner sans bloquer les dons réels. Allongez la Fenêtre de recherche ou augmentez Bloquer après les tentatives échouées si vous constatez des faux positifs.
Les alertes par e-mail ont cessé d'arriver pendant une attaque active
DonationGuard applique un délai de 4 heures entre les e-mails d'alerte et un plafond strict de 6 e-mails par jour et par site. Les notifications de bannière, de barre d'administration et dans le plugin continuent de se mettre à jour en temps réel, même lorsque les e-mails sont limités.
L'équipe de confidentialité pose des questions sur le stockage des adresses IP
Activez Hacher les adresses IP (Mode confidentialité) sous l'onglet DonationGuard. Les adresses IP dans les enregistrements d'attaques seront stockées sous forme de hachages unidirectionnels. L'action en un clic « bannir cette IP » sur l'écran d'examen des attaques est désactivée dans ce mode.
Notes diverses.
Remarque : L'activation de DonationGuard activera automatiquement le Suivi d'utilisation. Bien qu'aucune nouvelle information ne soit envoyée suite à cette action, et qu'aucun changement ne soit apporté à la manière dont la confidentialité est maintenue, les données permettront d'améliorer DonationGuard dans les futures mises à jour.
Ce qui est protégé
DonationGuard inspecte chaque soumission de formulaire de don par rapport à un ensemble évolutif de signaux comportementaux (timing, taux de refus, répartition IP, ratio, taux en attente) et calcule un score de sévérité. Lorsque le score dépasse un seuil, un enregistrement d'attaque est ouvert. Au fur et à mesure que d'autres soumissions arrivent correspondant au même schéma, l'enregistrement passe de Avertissement à Critique. Lorsque l'activité diminue, l'enregistrement se ferme automatiquement ; vous pouvez également rejeter manuellement les faux positifs.
La fonctionnalité 1.8.16 est livrée avec trois couches qui fonctionnent indépendamment :
| Couche | Ce qu'il fait | Où elle se trouve |
|---|---|---|
| Détecteur DonationGuard | Score passif basé sur les signaux. Ouvre des enregistrements d'attaque, envoie des alertes par e-mail, bloque éventuellement le schéma du récidiviste. | Paramètres > Sécurité > DonationGuard |
| Modules de champs de formulaire | Défenses actives par soumission : Pot de miel (champ leurre rempli par les robots) et Piège temporel (rejette les soumissions de moins de 2 secondes). | Paramètres > Sécurité > Formulaires & Campagnes |
| Cloudflare Turnstile + assistant d'installation | Une alternative gratuite et sans friction au reCAPTCHA. Un assistant en ligne en 3 étapes vous aide à obtenir une clé et à la coller. | Paramètres > Sécurité > Captcha |
Où le trouver
| Quoi | Où |
|---|---|
| Historique des attaques (l'enregistrement en cours des attaques détectées) | Charitable > Outils > Journaux > Événements de robots |
| Paramètres de DonationGuard (sensibilité de détection, alertes, règle du récidiviste) | Charitable > Paramètres > Sécurité > DonationGuard |
| Interrupteurs Pot de miel + Piège temporel | Charitable > Paramètres > Sécurité > Formulaires & Campagnes |
| Assistant d'installation Cloudflare Turnstile | Charitable > Paramètres > Sécurité > Captcha (lorsque Turnstile est le fournisseur sélectionné) |
Historique des attaques
Le sous-onglet Événements de robots sous Outils > Journaux est l'endroit où atterrit chaque attaque détectée. Chaque ligne est un enregistrement d'attaque :
| Colonne | Ce qu'il montre |
|---|---|
| Statut | Ouvert (actif actuellement), Fermé (l'activité a diminué — DonationGuard l'a fermé automatiquement), ou Rejeté (vous l'avez marqué comme faux positif). |
| Démarré | Lorsque la première soumission qualifiée a été reçue. |
| Durée | Durée de l'explosion, du premier au dernier soumission correspondante, ou (en cours) si toujours ouvert. |
| Gravité maximale | Le score le plus élevé atteint par l'enregistrement pendant son exécution. Critique ou Avertissement, avec un score numérique (par exemple Critique (0.9)). |
| Dons signalés | Nombre de soumissions de formulaires liées à ce modèle d'attaque. |
| Actions | Un lien Afficher les détails pour l'analyse par enregistrement. |
Sous le tableau, le bouton Effacer l'historique supprime les enregistrements fermés et rejetés, mais laisse les attaques ouvertes en place (vous ne pouvez donc pas masquer accidentellement un incident actif de votre propre vue).
Honeypot et Piège temporel
DonationGuard fonctionne avec deux nouveaux modules de formulaire sans friction livrés dans la version 1.8.16, tous deux sous Paramètres > Sécurité > Formulaires & Campagnes :

Pot de miel
Un champ leurre caché est injecté dans chaque formulaire de don. Les vrais humains ne le voient jamais (c'est un <input type="hidden">). Les bots naïfs remplissent automatiquement tout ce qui ressemble à une URL ou à une entrée de site Web — lorsque le champ revient rempli, la soumission est silencieusement rejetée.
- Paramètre : Honeypot — une seule bascule marche/arrêt.
- Expérience du donateur : zéro. Pas de captcha, pas de problème mathématique, pas de friction.
- Ce qu'il attrape : les bots de spam de formulaire stupides qui remplissent tous les champs d'un formulaire. N'attrape pas les bots sophistiqués qui ciblent spécifiquement Charitable.
- Recommandé : toujours activé. Ne coûte rien, attrape une part significative des abus à faible effort.
Piège temporel
Rejette les soumissions de formulaires de don complétées en moins de 2 secondes. Les donateurs ne remplissent pas un formulaire à plusieurs champs aussi rapidement ; les bots le font.
- Paramètre : Piège temporel — une seule bascule marche/arrêt.
- Expérience du donateur : zéro. Les vrais humains mettent 8 à 60 secondes pour remplir le formulaire, même s'ils sont rapides.
- Ce qu'il attrape : les soumetteurs scriptés qui envoient directement des requêtes POST au point d'accès du formulaire sans rendre la page d'abord. Bon complément à Honeypot.
- Recommandé : toujours activé.
Validation mathématique (plus ancien mais toujours là)
Un module préexistant, conservé pour la complétude dans cet onglet : ajoute un problème mathématique aléatoire (8 - 5 = ?) au formulaire de don auquel les donateurs doivent répondre correctement pour soumettre. Plus de friction que Honeypot ou Piège temporel ; activez ceci uniquement si vous recevez des bots qui contournent les couches sans friction.
Conseils
- Essai à blanc avant de bloquer. Lorsque vous activez pour la première fois le blocage des tentatives répétées, définissez l'Action en cas de correspondance sur Journalisation uniquement (essai à blanc) pendant une semaine. Observez les correspondances sous Outils > Journaux. S'il s'agit uniquement de vrais attaquants, passez à Bloquer. Si vous voyez des donateurs légitimes, augmentez d'abord le seuil ou la fenêtre de consultation.
- Compromis du mode confidentialité. Le hachage des adresses IP rend les enregistrements d'attaques plus respectueux du RGPD mais désactive l'ajout de liste noire en un clic. Si vous ne bloquez pas par IP de toute façon, laissez-le activé.
- La protection rapide est à un clic. Si vous n’êtes pas sûr par où commencer, appuyez sur Appliquer les paramètres recommandés dans le panneau DonationGuard — cela active le Pot de miel, le Piège temporel et la Limitation du débit en une seule fois.
- Un enregistrement d’attaque ouvert est plus utile qu’un fermé. Ne rejetez pas comme faux positif dans le feu de l’action. Laissez-le ouvert jusqu’à la fin de la rafale afin de pouvoir examiner, collecter les modèles d’IP/e-mail, et seulement alors décider s’il était réel.
- L’e-mail « Tout est clair » est le signal le plus calme. Voir les incidents actifs passer à fermés est plus rassurant que de suivre les alertes en cours. Activez ceci.
Référence du développeur
Stockage
| Où | Quoi |
|---|---|
Type de publication charitable_bot_atk | Chaque enregistrement d’attaque est une publication de ce type. Les statuts sont publish (ouvert), cb_bot_closed, cb_bot_dismissed. |
Méta de publication _charitable_bot_attack_severity | Score de gravité numérique (0,0 — 1,0+) pour une attaque à son maximum. |
Méta de publication _charitable_bot_attack_severity_tier | Chaîne : warning ou critical. |
Méta de publication _charitable_bot_attack_signals_at_peak | Instantané JSON des cinq valeurs de signal au moment où la gravité a atteint son maximum. |
Méta de publication _charitable_bot_attack_donation_ids | Tableau JSON des identifiants de publication de dons signalés par cette attaque. |
Option charitable_bot_protection_settings | Miroir interne des paramètres DonationGuard que le chemin d’accès rapide du détecteur lit directement (pas d’aller-retour de réglage vers charitable_settings). |
Actions
| Action | Quand cela se déclenche |
|---|---|
charitable_bot_attack_opened | Un nouvel enregistrement d’attaque est ouvert. Reçoit $post_id, $tier. |
charitable_bot_attack_escalated | Le niveau d’un enregistrement existant change vers le haut (avertissement → critique). Reçoit $post_id, $previous_tier, $new_tier. |
charitable_bot_attack_closed | Un enregistrement est automatiquement fermé car l’activité a diminué. Reçoit $post_id, $reason. |
Extension de signal
Les cinq signaux intégrés se trouvent dans includes/pro/bot-protection/class-charitable-bot-signal-*.php. Chacun implémente une interface commune (calculer un facteur de déviation pour la soumission actuelle). Ajoutez un signal personnalisé en étendant Charitable_Bot_Signal_Abstract et en l’enregistrant via le filtre charitable_bot_signals — votre signal sera évalué à chaque soumission et intégré au scoreur aux côtés des signaux intégrés.
Messages d’erreur personnalisés
Le message d’erreur du bloc Répéteur de tentatives est filtrable par donateur — utile si vous souhaitez une copie différente pour différentes campagnes :
add_filter( 'charitable_bot_repeat_attempter_block_message', function( $message, $email, $campaign_id ) {
if ( $campaign_id === 123 ) {
return 'Your donation could not be processed. Please contact our support team.';
}
return $message;
}, 10, 3 );
Exemples de personnalisation
Désactiver complètement les alertes DonationGuard (conserver la détection, supprimer les e-mails) :
add_filter( 'charitable_bot_attack_should_send_alert', '__return_false' );
Abaisser le seuil de gravité des enregistrements ouverts (plus sensible — enregistrements ouverts sur des événements à score plus bas) :
add_filter( 'charitable_bot_scorer_open_threshold', function( $threshold ) {
return 0.5; // Default is around 0.6.
} );
Rejeter automatiquement les attaques en dessous d’un certain score :
add_action( 'charitable_bot_attack_opened', function( $post_id, $tier ) {
$score = (float) get_post_meta( $post_id, '_charitable_bot_attack_severity', true );
if ( $score < 0.65 ) {
wp_update_post( array( 'ID' => $post_id, 'post_status' => 'cb_bot_dismissed' ) );
}
}, 10, 2 );
Transférer les alertes critiques vers un webhook Slack :
add_action( 'charitable_bot_attack_opened', function( $post_id, $tier ) {
if ( 'critical' !== $tier ) {
return;
}
$score = get_post_meta( $post_id, '_charitable_bot_attack_severity', true );
wp_remote_post( SLACK_WEBHOOK_URL, array(
'body' => json_encode( array(
'text' => sprintf( 'DonationGuard: CRITICAL attack opened (#%d, score %.2f)', $post_id, $score ),
) ),
) );
}, 10, 2 );
Connexes
- Hub de documentation Charitable – L'index principal de la documentation.





