Berichten in wartaal, elke dag weer.
Spam via je contactformulier stop je het best met een paar onzichtbare filters op je server: een veld dat alleen bots invullen, een controle of het bericht van je eigen site komt, een rem op te veel berichten na elkaar, en een filter op wartaal. Een captcha helpt ook, maar kost je echte klanten en vraagt soms toestemming onder de cookieregels.
We bouwden zo'n formulierservice voor elf klantdomeinen. Hieronder wat elk filter doet, hoe het wartaalfilter een spamgolf bij Business Centrum stopte, wat je vandaag zelf kan doen op WordPress of een andere site, en wanneer je het beter laat bouwen.
Verzenden
Een bezoeker of een bot vult het formulier in
Rem
Te veel berichten na elkaar worden geweigerd
Honeypot
Een veld dat mensen niet zien, bots wel invullen
Herkomst
Komt het bericht echt van je eigen site
Wartaalfilter
Willekeurige letterreeksen in naam of bericht
Opschonen
Code en links onschadelijk maken
Je mailbox
Alleen wat alle filters doorkwam
Een tegengehouden bericht krijgt een gewoon antwoord, zodat een bot niet leert welk filter hem stopte. Het wartaalfilter stopte een spamgolf bij Business Centrum.
Vijf filters die werken
| Filter | Wat het doet | Wat het tegenhoudt | Wat je klant merkt |
|---|---|---|---|
| Rem | Weigert te veel berichten kort na elkaar | Bots die honderden berichten sturen | Niets |
| Honeypot | Een veld dat mensen niet zien, maar bots invullen | De meeste eenvoudige bots | Niets |
| Herkomstcontrole | Controleert of het bericht van je eigen site komt | Bots die je formulier rechtstreeks aanspreken | Niets |
| Wartaalfilter | Herkent willekeurige letterreeksen in naam of bericht | Golven van nepberichten | Niets |
| Opschonen | Maakt code en verdachte inhoud onschadelijk | Pogingen om je site of mailbox aan te vallen | Niets |
Het sterke punt: je klant merkt van geen enkel filter iets. Geen puzzel, geen vinkje, geen vertraging. En een tegengehouden bericht krijgt een gewoon antwoord, zodat een bot niet leert welk filter hem stopte.
Hoe we het bouwden
Onze formulierservice verwerkt de contactformulieren van elf klantdomeinen en stuurt ze via Amazon SES naar de juiste mailbox. Elk formulier gaat door dezelfde filters, die met 17 tests bewaakt worden. Het voordeel van een gedeelde service: een nieuw filter voor een klant beschermt meteen alle andere. De filters draaien op de server, niet in de browser van je bezoeker, dus een bot kan ze niet omzeilen door je pagina over te slaan.
Wat zaakvoerders ons vragen over formulierspam
Waarom krijg ik spam via mijn contactformulier?
Bots zoeken het hele internet af naar formulieren en vullen ze automatisch in, om reclame te sturen, links te plaatsen of te testen of je formulier misbruikt kan worden. Een formulier zonder filters is een open deur.
Is spam via een contactformulier gevaarlijk?
Meestal is het alleen hinderlijk. Maar een bericht met een link naar een valse factuur of een inlogpagina is phishing. Klik nooit op links in berichten die je niet verwacht.
Helpt een captcha?
Ja, tegen eenvoudige bots. Maar echte bezoekers haken af op puzzels, en een captcha van een derde partij kan cookies plaatsen of gegevens doorsturen, wat je dan in je cookiebanner en privacyverklaring moet vermelden.
Kan ik spam via WordPress stoppen zonder plugin?
Een honeypot kan je met een paar regels code toevoegen. Voor de rest gebruik je een plugin of een formulierservice op je server; hoe minder plugins, hoe kleiner het risico.
Hoe het wartaalfilter een spamgolf stopte
Bij Business Centrum, een sociaal bureau in Gent waarvan we de site bouwden, kwam een golf berichten binnen met willekeurige reeksen hoofd- en kleine letters als naam en bericht. De honeypot alleen hield ze niet tegen. We lazen de logs, zagen het patroon en schreven een filter dat precies zulke reeksen herkent, met de echte berichten als test. De golf stopte, en gewone aanvragen kwamen gewoon door. De les: spam verandert, dus een filter dat je kan aanpassen met echte voorbeelden is meer waard dan een vaste instelling. Lees de case van Business Centrum.
Captcha: wat het kost
Een captcha laat bezoekers bewijzen dat ze een mens zijn. Het werkt tegen eenvoudige bots, maar heeft een prijs:
- Klanten haken afElke extra stap in een formulier kost aanvragen, zeker op een gsm.
- ToegankelijkheidEen visuele puzzel is voor sommige bezoekers niet op te lossen. Sinds de Europese toegankelijkheidswet telt dat voor veel sites; zie de European Accessibility Act en toegankelijkheid van webshops, een jaar later.
- Cookies en gegevensEen captcha van een derde partij kan informatie op het toestel van je bezoeker opslaan of naar die partij sturen. Is dat niet strikt nodig, dan vraagt de Europese regel toestemming. Vermeld het minstens in je cookiebanner en je privacyverklaring; zie is een cookiebanner verplicht.
Begin dus met onzichtbare filters op je server, en voeg pas een captcha toe als die niet volstaan.
Een spamgolf, van melding tot oplossing
- EerstDe meldingDe klant krijgt berichten met willekeurige letterreeksen als naam en als bericht.
- DanDe logs lezenWelk patroon, welk tijdstip, van waar, en welke filters het bericht al doorkwam.
- DaarnaEen nieuw filterEen regel op het patroon, getest op de echte aanvragen zodat geen enkele klant wordt tegengehouden.
- SindsdienStilDe golf stopt, echte aanvragen komen gewoon door, en het filter beschermt meteen elke andere site op de service.
WordPress en andere sites
Op WordPress komt formulierspam vaak via een plugin die niet meer bijgewerkt wordt, of een formulier zonder enige bescherming. Hou het aantal plugins klein en up-to-date; lees is WordPress veilig. Op een site die we zelf bouwen, zit het formulier niet in een plugin maar gaat het naar onze formulierservice, met de filters op de server.
Vraag ook alleen wat je nodig hebt. De AVG vraagt minimale gegevensverwerking: een naam, een e-mailadres en een bericht volstaan meestal. Minder velden betekent minder te beveiligen, en een korter formulier dat meer echte klanten invullen. Zeg in je privacyverklaring wat je met de gegevens doet en hoe lang je ze bewaart.
Wat het betekent voor jouw bedrijf
| Lezer | Het risico | Wat je doet |
|---|---|---|
| Kmo of dienstverlener | Echte aanvragen verdrinken in spam | Onzichtbare filters, een apart adres voor het formulier |
| Webshop | Valse bestellingen, phishing naar je klantendienst | Filters op elk formulier van je webshop, ook retour- en contactformulieren |
| Bureau | Spam bij tientallen klantsites tegelijk | Een gedeelde formulierservice in plaats van een plugin per site |
| Buitenlands bedrijf met Belgische klanten | Spam in talen die je niet leest | Dezelfde filters, en een formulier in de taal van je klant op een meertalige website |
Vandaag zelf te doen
- Voeg een honeypot-veld toe dat mensen niet zien.
- Vraag alleen de velden die je echt nodig hebt.
- Laat het formulier niet naar je hoofdmailbox sturen maar naar een apart adres.
- Verwijder formulierplugins die je niet meer gebruikt en update de rest.
- Klik nooit op links in een formulierbericht dat je niet verwacht.
Je mailbox mee beschermen
Een formulier dat via je eigen domein mailt, moet ook zelf goed ingesteld zijn: Gmail vraagt van elke afzender SPF of DKIM en een lage spamgraad. Laat je formulier niet met je eigen adres als afzender versturen, maar met een vast afzenderadres van je domein en de bezoeker als antwoordadres. Wie ook een nieuwsbrief verstuurt, leest de regels in een nieuwsbrief schrijven. Komt het formulier toch in spam aan, dan vind je de oorzaak in waarom komt mijn mail in spam; verstuurt je site zelf spam, dan is ze misschien gehackt, en wat je dan doet staat in website gehackt.
Een formulier dat verkoopt, niet alleen tegenhoudt
Spam tegenhouden is de helft. De andere helft is een formulier dat echte klanten graag invullen: weinig velden, een duidelijke knop, een bevestiging die zegt wanneer je antwoordt. Op een landingspagina staat het formulier bovenaan, niet na drie schermen tekst. Wat een site met zo'n formulier per jaar kost aan onderhoud, staat in wat kost een website per jaar.
Hoe VBS je formulier beschermt
Vanuit Gent maken we websites met een contactformulier op onze eigen formulierservice: vijf filters op de server, verzending via Amazon SES, en een filter dat we bijstellen zodra er een nieuwe golf opduikt. Voor bestaande sites doen we website-onderhoud en beheer. Zit je met een trage of onveilige WordPress-site, lees dan waarom WordPress zo traag is. Plan een gesprek.
