Naar de inhoud

BlogLessen uit ons werk6 min lezen

Spam via contactformulier: zo hielden we ze tegen

Vijf filters die we voor elf klantdomeinen bouwden, wat een captcha kost, en wat je vandaag zelf doet.

Het contactformulier op kalaw.eu, gebouwd door VBS voor K&A Law, beschermd tegen spam

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.

  1. Verzenden

    Een bezoeker of een bot vult het formulier in

  2. Rem

    Te veel berichten na elkaar worden geweigerd

  3. Honeypot

    Een veld dat mensen niet zien, bots wel invullen

  4. Herkomst

    Komt het bericht echt van je eigen site

  5. Wartaalfilter

    Willekeurige letterreeksen in naam of bericht

  6. Opschonen

    Code en links onschadelijk maken

  7. 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

FilterWat het doetWat het tegenhoudtWat je klant merkt
RemWeigert te veel berichten kort na elkaarBots die honderden berichten sturenNiets
HoneypotEen veld dat mensen niet zien, maar bots invullenDe meeste eenvoudige botsNiets
HerkomstcontroleControleert of het bericht van je eigen site komtBots die je formulier rechtstreeks aansprekenNiets
WartaalfilterHerkent willekeurige letterreeksen in naam of berichtGolven van nepberichtenNiets
OpschonenMaakt code en verdachte inhoud onschadelijkPogingen om je site of mailbox aan te vallenNiets

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

  1. EerstDe meldingDe klant krijgt berichten met willekeurige letterreeksen als naam en als bericht.
  2. DanDe logs lezenWelk patroon, welk tijdstip, van waar, en welke filters het bericht al doorkwam.
  3. DaarnaEen nieuw filterEen regel op het patroon, getest op de echte aanvragen zodat geen enkele klant wordt tegengehouden.
  4. 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

LezerHet risicoWat je doet
Kmo of dienstverlenerEchte aanvragen verdrinken in spamOnzichtbare filters, een apart adres voor het formulier
WebshopValse bestellingen, phishing naar je klantendienstFilters op elk formulier van je webshop, ook retour- en contactformulieren
BureauSpam bij tientallen klantsites tegelijkEen gedeelde formulierservice in plaats van een plugin per site
Buitenlands bedrijf met Belgische klantenSpam in talen die je niet leestDezelfde 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.

Elke dag spam in je mailbox?

We zetten je formulier op onze formulierservice met filters op je server, zonder puzzels voor je klanten. Plan een gesprek.

Optioneel, als je liever gebeld wordt.

Wat wil je bereiken, en wat staat er al?

We gebruiken je gegevens alleen om je te antwoorden.