DEV Community

Cover image for honeypot 🐝
Driss Nafi3
Driss Nafi3

Posted on

honeypot 🐝

Bien sûr ! La technique du "honeypot" (littéralement "pot de miel") est une méthode de protection contre les spams. C'est une solution intelligente et non intrusive qui repose sur l'idée de créer un "piÚge" spécifique pour les robots spammeurs. Voici une explication plus détaillée :

Comment ça fonctionne ?

  1. Ajout de champs cachés : Dans un formulaire (par exemple, un formulaire de commentaire ou d'inscription), vous ajoutez un ou plusieurs champs supplémentaires, comme "email_confirm" ou "extra_field".

    • Ces champs sont rendus invisibles pour les utilisateurs humains en utilisant du CSS, comme :
     .honeypot {
         display: none;
         visibility: hidden;
     }
    

    Les humains ne voient donc pas ces champs.

  2. Les robots remplissent tout : Les robots spammeurs, lorsqu'ils analysent le HTML de la page, ne tiennent pas compte du CSS. Ils détectent et remplissent automatiquement tous les champs, y compris les champs cachés.

  3. DĂ©tection de spam : Du cĂŽtĂ© serveur, vous vĂ©rifiez si l'un des champs cachĂ©s est rempli. Si c'est le cas, cela indique que c'est un robot qui a soumis le formulaire, et la requĂȘte est rejetĂ©e comme spam.

Pourquoi est-ce efficace ?

  • Les humains n'interagissent pas : Les utilisateurs humains ne peuvent pas interagir avec ces champs cachĂ©s puisqu'ils ne les voient pas.
  • Simple et rapide : C'est facile Ă  mettre en place et ne nĂ©cessite pas d'outils complexes comme les CAPTCHAs, qui peuvent ĂȘtre frustrants pour les utilisateurs.

Exemple en Laravel :

Voici comment vous pourriez implémenter cette technique en Laravel :

  1. Ajout d'un champ dans le formulaire :
   <input type="text" name="honeypot_field" class="honeypot" />
Enter fullscreen mode Exit fullscreen mode
  1. VĂ©rification dans le contrĂŽleur :
   public function store(Request $request)
   {
       if ($request->filled('honeypot_field')) {
           // C'est un robot, rejetez la requĂȘte
           return response('Spam detected', 400);
       }

       // Continuer avec le traitement normal
   }
Enter fullscreen mode Exit fullscreen mode

Les avantages :

  • Invisible pour les utilisateurs : Contrairement aux CAPTCHAs, cela n'ajoute aucune friction pour les humains.
  • Aucun coĂ»t supplĂ©mentaire : Pas besoin d'utiliser de services tiers.
  • Discret mais puissant : TrĂšs efficace contre les robots basiques.

Les limites :

  • Certains robots plus avancĂ©s ignorent les champs invisibles en CSS et peuvent contourner cette technique. Dans ces cas, il pourrait ĂȘtre nĂ©cessaire d'ajouter des mesures supplĂ©mentaires comme des CAPTCHAs ou des vĂ©rifications sur le serveur.

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please show some appreciation ❀ or leave a nice note in the comments if you found this helpful!

Understood!