If you are lucky enough to build a popular community, then your reward is a never-ending onslaught of spam. It's a simple reality; there's no getting around it. In this series, I'll show you a variety of useful techniques for preventing spam at every turn. We'll review everything from basic keyword matching, to honeypots, to reCAPTCHA.
Initial Setup with Laravel Breeze
Before we can review and discuss the honeypot technique, let's first quickly scaffold a basic application with authentication. Luckily, Laravel Breeze makes this a cinch.
The Honeypot Technique
The honeypot technique is laughably simple. The basic approach involves adding a hidden input to your form. Your users will never see it, but a bot will. Once submitted to your server, you only need to check if its value is not empty. If so, you have a spammer on your hands! If you combine this with a time tracker, you should be able to prevent a sizable chunk of spam.
Make it Reusable
At this point, we have a working example. But we've also made a big mess in the process. So let's take some time to clean up the code and make it reusable for any form.
Think Like a Package Developer
It can be useful to organize and structure new features as if you were building a package - even if you never release this package to the outside world. With that in mind, let's group all Honeypot-specific classes and components into a single namespace.
Extract a Honeypot Manager
At this point, you should fully understand the honeypot technique. If you'd like some extra credit, however, let's spend a little more time discussing code organization and configurability.
Allow for Configuration Hooks
To wrap up this section, we'll discuss how to offer configuration and extension hooks to your package users. I'll demonstrate two options: traditional inheritance and static configuration hooks.
این دوره هنوز به پایان نرسیده است و در آینده درس های دیگری به آن افزوده خواهد شد.