Hushfort

Hoe voorkom ik spam via mijn contactformulier in WordPress zonder CAPTCHA?

Door Eureka Studio · Bijgewerkt op

Kort antwoord

Combineer onzichtbare controles in plaats van een CAPTCHA: een verborgen honeypotveld dat alleen bots invullen, een minimale invultijd, een token dat paginacaching overleeft, en limieten per IP en per e-mailadres. Zet twijfelgevallen in quarantaine in plaats van ze te verwijderen. Een lokale WordPress-plugin kan dit doen voor Elementor, Contact Form 7 en WPForms zonder gegevens ergens anders heen te sturen. In Hushfort hoort bescherming van formulierplugins bij Pro; de gratis plugin dekt alleen reacties en beoordelingen.

Stappen

  1. 1Stap 1

    Kijk hoe bots je formulier bestoken

    Bots vullen elk veld in dat ze vinden, ook een verborgen veld dat een mens nooit ziet, of posten zonder de pagina zelfs maar te laden. De log van Hushfort benoemt elk geval: honeypot ingevuld, geen token, te snel ingevuld, te veel links.

    De tabel Logs & quarantaine van Spamschild met inzendingen van een WPForms-contactformulier: geen token, limiet per IP overschreden, honeypotveld ingevuld, te veel links
  2. 2Stap 2

    Schakel Spamschild in Monitormodus in

    Open Spamschild in Hushfort, schakel het in en zet Modus op "Alleen loggen: Monitormodus, blokkeert niets". Is Hushfort Pro geïnstalleerd, laat Formulierplugins dan aan staan en sla op. Het legt vast wat het zou blokkeren, zonder al iets te blokkeren.

    Spamschild ingeschakeld met Modus op Alleen loggen: Monitormodus, blokkeert niets
  3. 3Stap 3

    Stel de stille limieten in (Pro)

    Hou de Minimale invultijd kort (3 seconden). Met Pro beperk je daarnaast hoeveel berichten één IP (Limiet per IP) of één e-mailadres (Limiet per e-mailadres) per uur kan sturen. Berichten met meer links dan het Maximaal aantal links gaan in quarantaine.

    Limieten van Spamschild: minimale invultijd 3 seconden, limiet per IP 5 per uur, limiet per e-mailadres 3 per uur, maximaal 2 links
  4. 4Stap 4

    Bekijk de log en schakel dan over naar Blokkeren

    Kijk na een paar dagen wat de Monitormodus heeft opgevangen. Zitten er geen echte berichten tussen, zet Modus dan op "Blokkeren (aanbevolen)" en sla op.

    Modus van Spamschild gewijzigd van Alleen loggen naar Blokkeren (aanbevolen) en opgeslagen
  5. 5Stap 5

    Echte mensen versturen gewoon

    Een bezoeker typt een halve minuut, ziet het verborgen veld nooit en verstuurt. Geen puzzels, geen rasters met afbeeldingen.

    Een bezoeker vult het contactformulier van de demowinkel in en verstuurt het; het formulier antwoordt met Thanks for your message

Waarom het ertoe doet

Formulierspam is vooral vervelend, tot het meer wordt dan dat. Het begraaft echte aanvragen, leert je je inbox vluchtig door te nemen, en kan de verzendreputatie van je mailserver omlaag halen als je formulier automatische antwoorden stuurt. Op drukke sites kost het ook servertijd, omdat elke inzending de volledige verwerking van de formulierplugin doorloopt.

De gebruikelijke oplossing, een CAPTCHA, legt de kosten bij je bezoekers. Zij lossen puzzels op, sommigen haken af, en wie privacytools gebruikt, loopt vast. De meeste CAPTCHA-diensten laden ook code van derden en sturen bezoekersgegevens van je server weg.

Het kan rustiger. Bots gedragen zich anders dan mensen, op manieren die je ongemerkt kunt controleren:

  • Ze vullen verborgen velden in. Een honeypot is een veld dat voor mensen verborgen is, maar wel in de HTML staat. Een mens laat het leeg; een bot vult het in.
  • Ze zijn snel. Een mens heeft een paar seconden nodig om een formulier in te vullen. Een bot milliseconden.
  • Ze herhalen zich. Eén IP of één e-mailadres dat tien berichten per uur stuurt, is geen klant.
  • Ze plakken links. Een bericht vol links is zelden een echte aanvraag.

Veelgemaakte fouten

  • Blokkeren in plaats van in quarantaine zetten. Twijfelt een controle, bewaar het bericht dan voor beoordeling. De vraag van een echte klant verwijderen is erger dan één spambericht lezen.
  • Meteen naar Blokkeren gaan. Begin een paar dagen in een modus die alleen logt. Kijk wat er geblokkeerd zou zijn voordat je het laat blokkeren.
  • Tokens die stukgaan door caching. Zit je antispamtoken in een gecachte pagina, dan delen alle bezoekers één verlopen token. Gebruik bescherming die het token ophaalt bij het laden van de pagina.
  • Maar één controle. Een honeypot alleen houdt de simpele bots tegen. Voeg een invultijdcontrole en limieten toe.

Zonder plugin

De meeste formulierplugins hebben hier een basisversie van ingebouwd:

  • Elementor Pro-formulieren: voeg een veld "Honeypot" toe uit de lijst met velden.
  • Contact Form 7: voeg een honeypot toe via een add-on; CF7 ondersteunt ook Akismet als je accepteert dat er gegevens naar die dienst gaan.
  • WPForms: heeft een ingebouwd antispamtoken en een optionele honeypot in de instellingen van elk formulier.

Je kunt ook met de hand een eenvoudige honeypot toevoegen aan elk formulier dat je zelf beheert:

<div style="position:absolute;left:-9999px" aria-hidden="true">
  <label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
    wp_die( 'Spam detected.', 403 );
}

De beperkingen: elke formulierplugin doet het anders, er is meestal geen gedeelde snelheidslimiet over formulieren heen, geen quarantaine om fouten op te vangen, en niets voor reacties of beoordelingen. Je stelt uiteindelijk vijf keer hetzelfde idee in.

Als er iets misgaat

  • Echte berichten komen niet meer binnen. Zet Spamschild in Monitormodus, stuur een test en kijk in de log welke controle het tegenhield.
  • Formulieren mislukken alleen bij sommige bezoekers. Leeg je paginacache één keer na het inschakelen van de bescherming.
  • Er komt nog steeds spam door. Verlaag de linklimiet, voeg woorden of domeinen toe aan de blokkeerlijst, of zet de strikte modus aan voor formulieren die alleen bekende e-mailproviders horen te accepteren.

Met Hushfort

Het Spamschild beschermt in Hushfort Security, de gratis WordPress-beveiligingsplugin, reacties en WooCommerce-beoordelingen. Voor formulierplugins heb je Hushfort Pro nodig; dat voegt zes populaire toe (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator), in hetzelfde scherm.

  • Onzichtbare honeypot, minimale invultijd en ondertekende tokens die paginacaching overleven. Het token komt van een piepklein script van ongeveer 2 KB, zonder cookies.
  • Pro: standaard limieten per IP (5 per uur) en per e-mailadres (3 per uur); berichten met meer dan 2 links gaan in quarantaine.
  • Pro: een lijst met ongeveer 9.900 domeinen voor wegwerp-e-mailadressen, je eigen blokkeerlijsten en woordfilters.
  • Pro: quarantaine die leert van "Geen spam".
  • Een Monitormodus, zodat je ziet wat het zou blokkeren voordat het blokkeert.

Geen CAPTCHA, geen externe API, en er verlaten nooit formuliergegevens je server.

Veelgestelde vragen

Houden honeypots formulierspam echt tegen?

Ze houden de meeste geautomatiseerde bots tegen, die elk veld invullen dat ze vinden. Sommige slimmere bots slaan verborgen velden over; daarom zitten er een invultijdcontrole en limieten per IP achter de honeypot.

Waarom reCAPTCHA vermijden?

Het zorgt voor drempels bij echte bezoekers, kan mislukken bij mensen die privacytools gebruiken, en stuurt bezoekersgegevens naar een derde partij. Veel site-eigenaren merken ook dat er een cookiemelding voor nodig is.

Werkt dit met paginacaching?

Ja, als het token wordt opgehaald wanneer de pagina laadt en niet in de gecachte HTML zit. Anders krijgt elke bezoeker hetzelfde verlopen token en mislukken formulieren.

Welke formulierplugins worden ondersteund?

Met Hushfort Pro ondersteunt het Spamschild formulieren van Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms en Forminator. De gratis plugin dekt alleen reacties en WooCommerce-beoordelingen.

Wat gebeurt er met een bericht dat op spam lijkt maar echt kan zijn?

Met Hushfort Pro gaat het in quarantaine in plaats van verwijderd te worden. Markeer het als "Geen spam" en het wordt afgeleverd, en het schild leert ervan.

Meld een bug of vraag een functie aan

Je bericht gaat rechtstreeks naar het team dat Hushfort bouwt.

Waar gaat het over?

Alleen gebruikt om je te antwoorden.

We gebruiken deze gegevens alleen om je te antwoorden. Privacy