Protection Anti-Spam de formulaire BreezingForms par champ masqué

Situation

Il est normalement rare que les robots passent outre la protection Anti-Spam du service reCaptcha 2 classique ou invisible de Google, il semble efficace mais on peut ne pas aimer ce type de protection ou simplement souhaiter le renforcer par une option supplémentaire.

En effet, même s'il protège généralement bien du spam, ils est aussi assez intrusif et demande parfois l'intervention de l'utilisateur.

Remède

Le champ de formulaire caché, également nommé Honeypot, et dont le contenu est testé avant l'envoi du formulaire est une option intéressante.

Explication : Les robots en quête de formulaires à spammer ne passent pas le visiter depuis un navigateur classique mais accèdent directement au code source de la page visitée. Le champ, masqué pour les utilisateurs classiques, n'est donc pas masqué pour ce robot qui le remplira d'un contenu. Il suffit alors d'en tester le contenu pour valider ou invalider le formulaire
➝ Le champs est renseigné, on invalide ➝ le champs reste vide, on en déduit que l'utilisateur est un humain, le formulaire sera validé.

Mise en œuvre

  1. Dans votre formulaire, ajouter un champ de texte. Il ne peut contenir de valeur par défaut dans ses options. Nommez-le et donnez-lui l'étiquette (label) Site Web p.ex.
  2. Rendez-vous dans les options avancées du formulaire, plus d'options, Onglet Envoyer des pièces → Début de soumission →Personnalisé.
  3. Saisissez le code suivant :
    $this->execPieceByName('ff_InitLib');
        if( ff_getSubmit('siteWeb') != '' ) // Teste si le champ nommé siteWeb est resté vide
        {
             exit; // sinon on sort du formulaire
    }

Dans cet exemple, nous teston la valeur du champs siteWeb dans une fonction d'inégalité (!=) Nous pouvons également tester une égalité à l'aide des caractères suivants (==).

Enregistrez ces modifications et sortez des options. Enregistrez votre formulaire et testez-le. Envoyez le formulaire rempli sauf ce champs. Ensuite envoyez le formulaire en renseignant un contenu dans le champs siteWeb. Voyez la différence…

  1. Pour terminer, dans les options avancées de ce champ, cochez l'option "non visible en frontend" afin de masquer cet élément et publiez votre formulaire.

Certains robots seraient capables de vider les champs d'un formulaire avant de le ressaisir avec leurs propres informations. Si l'ajout de ce champ ne suffit pas, on peut en ajouter un second, en lui donnant une valeur par défaut dans ses propriétés (champ Valeur) dont on testera le contenu. S'il est différent on invalide le formulaire.

Exemple :

$this->execPieceByName('ff_InitLib');
if( ff_getSubmit('City') != 'valeur' || ff_getSubmit('siteWeb') != '' )
{
     exit;
}

Ci-dessus, nous testons si le champs 1 correspond bien à sa valeur par défaut et si le second champ est vide. Si l'un ou l'autre est invalidé, on sort du formulaire.

Remarque.
Cette méthode n'est pas plus efficace qu'une autre de type (re)Captcha, elle peut bloquer un grand nombre de robots spammeurs, cependant, elle ne trompera jamais un spammeur humain qui verrait le formulaire comme n'importe quel visiteur de la page.

 Ajouter un commentaire
En utilisant ce formulaire de commentaires, vous acceptez que les informations demandées soient enregistrées, affichées ci-dessous et utilisées pour un éventuel contact.

 Commentaires   
GraphiqueDesign-bf
0#RE: Protection Anti-Spam de formulaire BreezingForms par champ masquéGraphiqueDesign-bf19-06-2018 00:49
Bonjour,
Bravo pour ce site unique à l'attention de ceux qui affectionne Breezingforms !
Avez-vous des statistiques, à savoir, le nombre de spam qui ont passé durant une période donnée ?
En fait, on a du mal à se faire une idée sur l'efficacité de la chose car les bots sont de plus en plus aguerris eux aussi.

Merci d'avance si vous avez un élément de réponse à me fournir.
Bien cordialement,
Répondre | Répondre en citant | Citer
Eddy
0#RE: Protection Anti-Spam de formulaire BreezingForms par champ masquéEddy19-06-2018 08:24
Bonjour GraphiqueDesign.

Merci pour ce compliment bien agréable.

Je n'ai malheureusement pas de statistiques à ce sujet.
Il faut savoir que cette protection n'est pas (ou plus) protectrice à 100% et qu'elle ne peut tromper qu'un robot, jamais un humain qui passerait son temps à rechercher des formulaires à remplir pour spammer puisqu'il verrait le formulaire comme tout autre utilisateur.

Cette solution est à utiliser en complément d'une ou plusieurs autres, de type filtrage d'IP p.ex.
Répondre | Répondre en citant | Citer