Comment vérifier que Gaitcha protège mon formulaire ?

Teste le formulaire publié en étant déconnecté. Les administrateurs WordPress contournent la validation par défaut. Une soumission réussie avec ton compte administrateur ne prouve donc pas que les visiteurs sont contrôlés.

Sur une préproduction, teste une interaction normale, une soumission sans cocher et un nouvel essai après une erreur. Vérifie le résultat final : le formulaire ne doit ni envoyer d’email ni enregistrer la soumission si le captcha la refuse. Dans une intégration PHP personnalisée, appelle ValidationOrchestrator avant ces actions.

Le widget ne s’affiche pas

Vérifie ces points dans l’ordre :

  1. Le connecteur correspondant est actif et le formulaire contient un champ Gaitcha. Les protections des formulaires natifs de connexion, inscription, mot de passe et commentaires s’activent séparément.
  2. Le JavaScript Gaitcha se charge, sans erreur antérieure qui empêche l’initialisation.
  3. Une interaction déclenche la requête d’initialisation. Le placeholder initial ne contient volontairement aucun jeton : c’est normal.
  4. L’endpoint renvoie du JSON, pas une erreur HTML ou une page de connexion. Sur WordPress, regarde /wp-json/gaitcha/v1/init dans l’onglet Réseau du navigateur.

Désactive temporairement le retardement ou la concaténation des scripts en préproduction pour isoler un conflit d’optimisation. Si une Content Security Policy bloque un script, un style injecté ou un worker, examine la violation précise. Ne supprime pas toute la politique pour afficher le widget.

La case est cochée, mais le serveur refuse le formulaire

La coche confirme une interaction dans le navigateur. Seule la validation serveur accepte la soumission. Dans une intégration personnalisée, regarde la raison du résultat sans exposer publiquement le détail du score ou les journaux visiteurs.

RaisonPremier contrôle
token_absentLe formulaire ou le payload AJAX contient les champs cachés de Gaitcha.
token_invalidL’initialisation et la validation utilisent le même secret ; le payload n’a pas été altéré.
token_expiredLe visiteur dispose d’un jeton frais ; aucune réponse d’initialisation en cache n’est réutilisée.
token_already_usedUne double soumission ou un nouvel essai a réutilisé un jeton déjà consommé.
log_malformedLe journal d’interaction est transmis en entier et sérialisé une seule fois.
score_insufficientLes parcours réels souris, clavier et tactile sont testés ; les données du geste n’ont pas été perdues.

Exclus l’endpoint d’initialisation du cache de page et du CDN. Évite de conserver les corps de requêtes dans les diagnostics. Ne commence pas par baisser le seuil : cela ne corrigera pas un payload manquant.

Le premier essai fonctionne, mais pas le suivant

Un formulaire AJAX doit réinitialiser le widget après un rejet et initialiser ceux ajoutés dans une popup ou un rendu dynamique. Les connecteurs WordPress gèrent leur cycle de vie ; une intégration personnalisée doit utiliser l’API de réinitialisation.

Conserve les autres champs saisis. Explique l’échec, propose un nouvel essai et un moyen de contact si la vérification continue à rejeter un visiteur légitime.

Le widget reste en attente

Regarde d’abord la requête d’initialisation et la console. Vérifie les erreurs PHP en privé, l’accès à l’endpoint et les réponses éventuelles du pare-feu. Avec la preuve de travail, la durée dépend aussi de l’appareil du visiteur.

Teste le même formulaire sans retardement des scripts en préproduction. N’annonce pas de durée universelle et n’augmente pas la difficulté du calcul pour résoudre une erreur réseau.

Quoi joindre à un signalement ?

Utilise les issues de l’extension WordPress pour les connecteurs et les issues du core pour une intégration PHP indépendante.

Indique les versions de Gaitcha, WordPress, PHP et du constructeur ; le mode d’interaction ; les étapes de reproduction ; le statut HTTP ou le code de rejet. Retire les secrets, jetons, données visiteurs et corps de requête complets. Un exemple minimal en préproduction est plus utile qu’un export de logs de production.

Consulte le fonctionnement de la validation pour les limites du score comportemental et la page WordPress pour les connecteurs.

Une question ou un cas particulier ?

Ouvrir une discussion sur GitHub