SilentShield
← Terug naar Blog
WordPressInstellenSpamContact Form 7

WordPress-captcha instellen en formulierspam stoppen, stap voor stap

Marc Wagner·7 oktober 2026·5 min leestijd

Deze handleiding brengt een verse WordPress-site met Contact Form 7 van “geen bescherming” naar een gelaagde opzet. Alles is getest op 7 oktober 2026 met SilentShield 2.15.14, Contact Form 7 6.2 en WordPress 7.1.2. De hier beschreven lagen draaien op uw eigen server; de optionele SilentShield-API staat in de WordPress-handleiding.

Een verse installatie beschermt nog niets

SilentShield-dashboard direct na de installatie: een rode melding “No form is protected yet” (Nog geen formulier beschermd) zegt dat elke formulierplugin afzonderlijk moet worden ingeschakeld, noemt Contact Forms 7, WordPress Comments, Password Reset, WordPress Login en WordPress Registration en biedt de knop “Choose what to protect”
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Na het activeren draait de plugin, maar is er geen formulierplugin ingeschakeld. Het dashboard zegt dat openlijk: “No form is protected yet” (Nog geen formulier beschermd), gevolgd door de formulierplugins die het op uw site heeft gevonden. Zolang een formulierplugin niet is ingeschakeld, tonen de formulieren ervan geen captcha-veld en wordt er niets gecontroleerd.

Alle instellingen hieronder staan in het menu SilentShield in de WordPress-beheeromgeving.

Stap 1: Kies een captcha-methode

Pagina Protection Settings: de captcha-module staat aan, met de methoden Honeypot (onzichtbaar, aanbevolen), Math Problem en Image Captcha, velden voor label en placeholder en een keuze uit weergavesjablonen
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Open SilentShield → Beschermingsinstellingen. Er zijn drie methoden:

  • Honeypot (standaard, onzichtbaar). Een lokveld staat buiten beeld; bezoekers zien het nooit, bots die elk gevonden veld invullen wel. Een honeypot is geen opgave: een bot die de pagina leest en het lokveld met rust laat, komt erdoor.
  • Rekensom. De bezoeker lost een kleine rekensom op (optellen, aftrekken of vermenigvuldigen). Die staat als tekst op de pagina, dus een bot met een echte browser kan hem lezen.
  • Afbeeldingscaptcha. Vervormde tekens die de bezoeker overtypt. Hiervoor heeft de server de PHP-bibliotheek GD nodig, en het is de grootste drempel voor uw bezoekers.

Begin met de honeypot als conversie het zwaarst weegt, en stap over op de rekensom of de afbeeldingscaptcha als er toch spam binnenkomt. Kies een sjabloon, pas zo nodig het label aan en klik op Opslaan.

Stap 2: Schakel uw formulieren in

Pagina Forms: de integratie Contact Forms 7 is ingeschakeld en toont de badges “Detected” en “Fields detected”; eronder staat het formulier “Contact form 1”, de overige formulierplugins zijn niet geïnstalleerd
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Open SilentShield → Formulieren. Elke formulierplugin heeft een schakelaar; de badge ernaast laat zien of de plugin op uw site is herkend. Schakelt u Contact Form 7 in, dan wisselt de badge van “Disabled” naar “Fields detected”. Deze schakelaar slaat direct op, er is geen Opslaan-knop om op te drukken.

Klik onder de integratie op één formulier als dat eigen instellingen nodig heeft. Instellingen gelden op drie niveaus (globaal, integratie, afzonderlijk formulier), en het lagere niveau overschrijft het hogere.

Stapsgewijze handleidingen voor afzonderlijke formulierplugins: Avada Forms, Elementor Forms, WPForms en de WooCommerce-checkout.

Stap 3: Voeg de detectielagen toe

Pagina Protection Settings, onderste deel: Timer Protection uit, JavaScript Detection aan, Browser Detection aan, Multiple Submission Protection uit, Gibberish Detection aan in de modus “Monitor only (record, do not block)” met “Flagged fields required: 3”
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Verderop bij Beschermingsinstellingen heeft elke laag een eigen schakelaar. Zo staan ze na een verse installatie:

  • JavaScript-detectie (aan). Blokkeert inzendingen van clients die geen JavaScript hebben uitgevoerd, bijvoorbeeld een script dat rechtstreeks naar het adres van uw formulier post.
  • Browserdetectie (aan). Controleert of het verzoek een geldige user agent meestuurt.
  • Timerbescherming (uit). Weigert een inzending die sneller binnenkomt dan een minimumtijd na het laden van de pagina; het standaardminimum is 500 milliseconden.
  • Bescherming tegen meervoudige inzending (uit). Voorkomt dat dezelfde captcha-sessie meer dan één keer wordt ingezonden.
  • Gibberish Detection (aan, “Monitor only”). Markeert tekst van willekeurige tekens, zoals “dQgJlwEhfxaLZSKYLy”. In monitormodus legt ze vast wat ze had geweigerd en blokkeert ze niets. Volg de resultaten een tijdje en zet de modus daarna op “Block”.

Een inzending wordt geweigerd zodra een actieve laag haar markeert.

Stap 4: Rate limit en inhoudsregels tegen hardnekkige spam

Pagina Advanced Settings: IP-based Rate Limiting en Content Rules (URL-limiet, BBCode, woordenzwarte lijst), beide uitgeschakeld, en een IP-zwarte lijst met de voorbeeldingangen 192.168.1.1 en 10.0.0.0/24
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Open SilentShield → Geavanceerde instellingen. Alles hier staat standaard uit:

  • IP-gebaseerde rate limiting. Na 3 mislukte pogingen binnen 5 minuten wordt een adres 1 uur geblokkeerd (de standaardwaarden, allemaal aanpasbaar). Adressen worden opgeslagen als gezouten hashes.
  • Inhoudsregels. Een limiet op het aantal links in een bericht, een blokkade van BBCode-links ([url=…]) en een woordenzwarte lijst. Die zwarte lijst is de eigen lijst van WordPress onder “Instellingen → Discussie” (“Disallowed Comment Keys”), dus aanpassen op de ene of de andere plek heeft hetzelfde effect.
  • IP-zwarte lijst. Adressen die u altijd wilt blokkeren, één per regel.

Stap 5: Test als bezoeker, niet als beheerder

Contact Form 7 na een fout captcha-antwoord: het formulier toont de ingevoerde waarden en een gemarkeerd berichtvak met de tekst “Captcha check”
Screenshot van de Engelse beheeromgeving (SilentShield 2.15.14, WordPress 7.1.2, getest op 7 oktober 2026).

Beheerders en ingelogde gebruikers slaan standaard alle controles over (de whitelist op dezelfde pagina). Een test terwijl u bent ingelogd bewijst dus niets. Open het formulier in plaats daarvan in een privévenster van de browser:

  1. Verzend met een onjuist captcha-antwoord. De inzending moet worden geblokkeerd; Contact Form 7 toont de reden in zijn berichtvak, hier “Captcha check”.
  2. Laad het formulier opnieuw en verzend met het juiste antwoord. Die moet erdoor komen.

Welke instelling welke spam stopt

  • Scripts die rechtstreeks posten, zonder browser: JavaScript-detectie en browserdetectie.
  • Bots die elk veld invullen: de honeypot.
  • Scripts die een formulier binnen milliseconden invullen en versturen: timerbescherming.
  • Opvultekst van willekeurige tekens: Gibberish Detection.
  • Linkspam: linklimiet, BBCode-blokkade en woordenzwarte lijst.
  • Hetzelfde adres dat het steeds opnieuw probeert: IP-gebaseerde rate limiting.

Grenzen

  • Geen enkele instelling stopt spam die een mens met de hand typt.
  • Bots die een echte browser aansturen, kunnen de controles in de browser doorstaan. De inhoudsregels en Gibberish Detection kijken in plaats daarvan naar wat er is getypt; voor dat geval is gedragsanalyse de passende laag.
  • Zonder JavaScript in de browser wordt een inzending naar een beschermd formulier geweigerd.

Handleiding formulierbescherming

Klaar om CAPTCHA te dumpen?

Begin uw formulieren te beschermen — onzichtbaar. Geen creditcard nodig.