Veel website-eigenaren kennen het wel: je ontvangt ineens vreemde of ongewenste berichten via het contactformulier op je site. Deze vervelende vorm van spam kun je tegengaan door de formulieren van je website hiertegen te beveiligen.
Spamfilter in je hostingpakket
Een logische vraag die we vaak krijgen: waarom houdt het spamfilter in mijn hostingpakket de spam van formulieren niet tegen?
Vanuit het spamfilter gezien is het het juist logisch dat het niet wordt tegengehouden. Het spamfilter in je hostingpakket is ontworpen om inkomende e-mail van externe afzenders te beoordelen. Het filter scant berichten op kenmerken van spam en beslist of ze worden doorgelaten naar je inbox of tegengehouden.
Maar: het filter kijkt alleen naar e-mail die van buiten je hostingaccount komt. Berichten die je aan jezelf verstuurt, of die via je eigen website worden gegenereerd, vallen daarbuiten en worden genegeerd door het spamfilter.
Het spamfilter beoordeelt dus alleen de mail die van anderen afkomstig is en niet de mail die jij aan jezelf stuurt. En ook niet de berichten die jij stuurt aan een ander e-mailaccount in je hostingpakket. Het is immers onwaarschijnlijk dat je spam aan jezelf of aan je collega’s stuurt.
Interne versus externe e-mail
Om het verschil duidelijk te maken, een voorbeeld:
Je hebt twee e-mailadressen in je hostingpakket: tess@jebedrijfsnaam.nl en juul@jebedrijfsnaam.nl.
- Externe mail: je stuurt een bericht vanaf tess@xs4all.nl naar tess@jebedrijfsnaam.nl. Het spamfilter controleert deze mail en laat hem door als hij betrouwbaar is.
- Interne mail: je stuurt een bericht van tess@jebedrijfsnaam.nl naar juul@jebedrijfsnaam.nl. Of je website stuurt via het contactformulier een bericht naar tess@jebedrijfsnaam.nl. Deze mails worden niet gefilterd, want ze komen van je eigen domein.
Spambots
Spam via contactformulieren komt vaak van spambots die je formulier invullen en via jouw website een bericht versturen. Een spambot is een geautomatiseerd programma dat het internet afspeurt naar websiteformulieren en deze automatisch invult en verstuurt.
Omdat deze berichten technisch gezien van je eigen domein komen, ziet het spamfilter ze als ‘vertrouwd’ en laat ze gewoon door.
Spam via webformulieren voorkomen
Je kunt formulieren helemaal van je site bannen en enkel een e-mailadres vermelden. Dan krijg je geen spam meer, maar het volledig vermijden van formulieren kan niet altijd. Een contactformulier kun je wellicht wel missen, maar een boekingsformulier of een bestelformulier natuurlijk niet.
Er zijn verschillende manieren om spam via formulieren zoveel mogelijk tegen te houden. Geen enkele manier is waterdicht, maar je kunt de spam wel zo beperken dat de hoeveelheid aanvaardbaar is. Door verschillende methoden te combineren, kun je nog betere resultaten behalen.
Wat kun je doen?
Wil je spam via je formulieren tegengaan, dan moet je de spam bij de bron aanpakken. Dat kan met:
- Honeypot velden
- Tijdslimieten voor formulierinvulling
- CAPTCHA
- reCAPTCHA
- Overige externe anti-spamdiensten
Honeypot velden
Een honeypot is een extra formulier-veld dat je toevoegt aan je contactformulier, maar dat je onzichtbaar maakt voor echte bezoekers. Bots daarentegen zien álle velden en vullen ze automatisch in. Zodra jouw systeem merkt dat dit verborgen veld is ingevuld, weet het: dit is geen mens, dit is spam. WordPress formulierenplugins als WPForms, Gravity Forms en Contact Form 7 hebben deze optie ingebouwd.
Voordelen
- Gebruiksvriendelijk: geen CAPTCHA’s of puzzels voor je bezoekers.
- Effectief tegen bots: de meeste spambots trappen erin.
- Onzichtbaar: geen impact op design of gebruikerservaring.
Nadelen
Geavanceerde bots kunnen honeypots herkennen en overslaan. Daarom is het slim om honeypots te combineren met andere technieken zoals reCAPTCHA.
Tijdslimieten (rate limiting) voor formulierinvulling
Bots proberen vaak honderden formulierinzendingen per minuut te doen. Met rate limiting kun je dit gedrag afremmen of blokkeren.
- Veel formulier-plugins hebben deze functie
- Je kunt JavaScript toevoegen dat meet hoe snel een formulier wordt ingevuld
Rate limiting werkt het best in combinatie met andere technieken zoals honeypots en reCAPTCHA’s. Zo bouw je een gelaagde verdediging tegen spam en misbruik.
CAPTCHA
Een captcha (een afkorting van completely automated public turing test to tell computers and humans apart) is algemeen bekend. Een plaatje met cijfers en letters, waarvan de tekens exact moeten worden overgenomen voordat het formulier verzonden kan worden. Zo’n plaatje wordt weergegeven als een afbeeldingsbestand. Mensen kunnen de tekst wel lezen, maar een spambot kan alleen tekst lezen in een html-bestand. Op deze manier worden computers en mensen van elkaar te onderscheiden.
Helaas is het zo dat spambots steeds slimmer worden en steeds vaker in staat zijn om dit soort plaatjes te lezen. Je ontvangt dan alsnog spam via het formulier. Het is daarom aan te raden om een CAPTCHA te combineren met andere technieken.
reCAPTCHA
reCAPTCHA is een techniek van Google die spam via formulieren helpt voorkomen zonder dat bezoekers lastiggevallen worden met onleesbare codes of vervelende puzzels.
Versie 2: het bekende vinkje
Bij reCAPTCHA v2 moest je als bezoeker nog actief aangeven dat je geen robot was, meestal door een vinkje aan te klikken. Op basis van je gedrag, zoals scrollen, klikken en de snelheid van invullen, en technische factoren zoals IP-adres en cookies, berekende Google een risicoscore. Was die score laag, dan volstond het vinkje. Bij twijfel kreeg je een visuele test: ‘Klik op alle plaatjes met zebrapaden, etalages of tractoren.’
Versie 3: volledig onzichtbaar
De nieuwste versie, reCAPTCHA v3, werkt volledig op de achtergrond. Je ziet geen vinkje en geen puzzel. Google analyseert het gedrag van de bezoeker op álle pagina’s van je website en kent automatisch een risicoscore toe. Op basis daarvan bepaalt het systeem of het om een legitieme gebruiker gaat of een bot.
Effectiviteit
Het gebruik van reCAPTCHA is effectief, vooral tegen eenvoudige spamrobots, maar het is niet waterdicht en geavanceerde bots kunnen het omzeilen, bijvoorbeeld door menselijk gedrag te simuleren. Voor complexere aanvallen zoals scraping, account takeovers of frauduleuze bestellingen is reCAPTCHA vaak niet genoeg.
Kosten van het gebruik van reCAPTCHA
reCAPTCHA is gratis, maar Google heeft de gratis limiet sterk verlaagd. Tot eind 2025 mocht je tot 1 miljoen verificaties per maand gratis gebruiken. Vanaf eind 2025 is die limiet verlaagd naar 10.000 verificaties per maand. Gebruik je meer dan dat, dan betaal je $1 per 1.000 extra verificaties.
Voor kleinere websites en standaard contactformulieren is deze limiet meestal ruim voldoende. Maar als je veel verkeer hebt of meerdere formulieren op verschillende pagina’s, kan het snel oplopen.
Google account voor reCAPTCHA
Je hebt altijd een Google-account nodig om reCAPTCHA te gebruiken.
Sinds eind 2025 is het aanmaken van een reCAPTCHA-key complexer geworden, omdat Google het beheer heeft verplaatst naar de Google Cloud Console. Dat betekent dat je eerst een project moet aanmaken in Google Cloud Console. Pas daarna genereer je een site key en secret key voor integratie.
reCAPTCHA instellen in je website
Je hebt de site key en secret key nodig om de reCAPTCHA te integreren in je website.
reCAPTCHA in Joomla
In Joomla 3 en 4 is al een plugin aanwezig voor reCAPTCHA, maar in versie 5 is dit niet meer standaard. Je hebt dan een losse extensie nodig om reCAPTCHA te gebruiken. Gelukkig zijn er plugins beschikbaar die gebaseerd zijn op de Joomla 4-versies, die je kunt vinden op de Joomla Extensions Directory.
reCAPTCHA in WordPress
In WordPress is reCAPTCHA niet standaard ingebouwd, maar het is wel eenvoudig te integreren. De meeste formulierenplugins voor WordPress ondersteunen reCAPTCHA. Contact Form 7 heeft ingebouwde voorzieningen voor reCAPTCHA v3. De stappen om reCAPTCHA v3 te integreren staan omschreven in de documentie van Contact Form 7.
Privacy en reCAPTCHA
Als je reCAPTCHA v2 of v3 in je website integreert, moet je hierover een vermelding opnemen in de privacyverklaring.
reCAPTCHA plaatst ook een cookie en je website heeft dus ook een cookieverklaring nodig.
Leest hierover meer in ons artikel Privacy en reCAPTCHA.
Overige externe spamdiensten
Externe antispam-diensten lijken in de basis op elkaar, maar ze gebruiken verschillende technieken en strategieën.
Hoe werken externe antispam-diensten in grote lijnen?
- Wanneer iemand een formulier indient (contactformulier, reactie, registratie), wordt de invoer doorgestuurd naar de dienst.
- De dienst beoordeelt of het gedrag en de inhoud verdacht zijn.
- De dienst geeft terug: ’toestaan’ of ‘blokkeren’, soms met een score of reden. Het formulier kan dan doorgaan, in quarantaine gezet worden, of worden geblokkeerd.
Technieken die vaak gebruikt worden
- IP- en reputatiecontrole: staat het IP-adres bekend als spammer/bot?
- Inhoudsanalyse: verdachte patronen in tekst (veel links, typische spamwoorden).
- Gedragsanalyse: snelheid waarmee het formulier is ingevuld, gebruik van muis/toetsenbord, of JavaScript wel/niet uitgevoerd wordt.
- Onzichtbare tests: bijvoorbeeld een verborgen veld dat echte bezoekers niet invullen, maar bots vaak wel (honeypot).
Voorbeelden van externe spamdiensten
CleanTalk
- Werkt via een externe database en algoritmes.
- Checkt IP, e-mail, gebruikersnaam en inhoud tegen een wereldwijde spamdatabase.
- Houdt ook ‘comment velocity’ bij: hoeveel reacties/aanmeldingen er vanaf een IP komen in korte tijd.
- Werkt transparant en voldoet aan de AVG-richtlijnen.
- Niet gratis.
OOPSpam
- Richt zich op AI-gestuurde inhoudsanalyse.
- Kijkt naar tekstpatronen en combineert dat met IP-reputatie.
- Geeft een spam score terug, zodat je zelf kunt bepalen vanaf welke score je inzendingen blokkeert.
- Handig als je formulieren in meerdere talen hebt of met veel tekst.
- Niet gratis: betaald abonnement op basis van het aantal verificaties per maand.
Cloudflare Turnstile
- Is eigenlijk geen inhoudsfilter, maar een moderne anti-bot-challenge (een alternatief voor reCAPTCHA).
- Meet of de bezoeker een echte browser/gebruiker is door kleine cryptografische en gedragsmatige checks uit te voeren.
- De gebruiker ziet meestal geen puzzel of vinkje, het gaat automatisch.
- Blokkeert dus vooral bots vóórdat ze het formulier überhaupt kunnen indienen.
- Gratis voor persoonlijk gebruik en hobbyprojecten. Je hebt wel een Cloudflare-account nodig, maar dat is ook gratis.
Verschillen in aanpak
- CleanTalk → sterk gericht op databank en reputatie.
- OOPSpam → vooral inhoudelijke analyse en AI score.
- Cloudflare Turnstile → botdetectie vooraf, niet zozeer inhoudsanalyse.
Vaak gebruiken websites een combinatie: een bot-filter (Turnstile) vóór de inzending, en een inhoudschecker (CleanTalk of OOPSpam) ná de inzending.
Voordelen van externe anti-spamdiensten
- Geavanceerde detectie door het gebruik van machine-learning, gedragsanalyse en wereldwijde spamdatabases.
- Herkennen zero-day-aanvallen en nieuwe spamtechnieken sneller dan lokale filters.
- Geen CAPTCHA nodig, werkt onzichtbaar.
- Geven geen serverbelasting.
- Ze werken op meerdere CMS’en: WordPress, Joomla, Drupal, WooCommerce, Webflow, etc.
- Vaak via eenvoudige plugins of extensies, zonder complexe configuratie.
- Gedetailleerde logging en rapportage.
Conclusie
Spam via webformulieren blijft een onvermijdelijk bijverschijnsel van online interactie, maar door een gelaagde aanpak kun je de overlast drastisch beperken. Een combinatie van technieken als honeypot-velden, rate limiting en onzichtbare oplossingen als reCAPTCHA v3 of CleanTalk werken vaak het beste.

