Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Browse all series

Spam Prevention Techniques

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.

Progress

Series Info

Episodes
6
Run Time
49m
Difficulty
Intermediate
Last Updated
Nov 24, 2020
Version
Laravel v8

Series Episodes

  1. Honeypot (6)
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.

Continue Learning