Elementor Pro Forms beschermen tegen spam over o.a. sex

Elementor Pro Forms beschermen tegen spam over o.a. sex.Voor het tonen van een contactformulier op mijn website maak ik gebruik van de Elementor Pro Forms Widget.

De laatste paar maanden krijg ik steeds meer last van spam e-mails die via mijn eigen contactformulier verstuurd worden.

Sommige dagen geen maar op andere dagen gerust een stuk of 5. Het is te overzien maar zonde van mijn tijd om die telkens te verwijderen.

De spam berichten gaan over de volgende onderwerpen:

  • Sex dates of sexclubs
  • Love en love games
  • Spullen voor honden

Waarom geen reCAPTCHA?

Deze oplossing zal zeker goed werken, maar ik ben er persoonlijk geen voorstander van omdat:

  1. Het is irritant voor bezoekers, plaatjes aanklikken
  2. Je moet eerst cookies accepteren voordat je de reCAPTCHA mag tonen

> Lees mijn blog over de WPForms + reCAPTCHA implementatie

Een simpel PHP script als oplossing:

Ik heb het onderstaande PHP script toegevoegd aan het “functions.php” bestand van mijn child theme.

add_action( 'elementor_pro/forms/validation/textarea', function($field, $record, $ajax_handler) {
    $activateBlock = false;

    $blackList = ['sex', 'dating', 'dog', 'love'];
    foreach ($blackList as $item) {
        if (false !== strpos($field['value'], $item)) {
            $activateBlock = true;
            break;
        }
    }

    if ($activateBlock) {
        $ajax_handler->add_error( $field['id'], 'Het tekstvak bevat woorden die niet toegestaan zijn. Verzenden is daarom niet mogelijk.');
        return;
    }
}, 10, 3);

Dit script werkt voor alle Elementor Pro Forms en kijkt specifiek naar de inhoud van tekstvakken. Het controleert niet de invulvelden voor naam en e-mailadres. Het script kan hier wel op aangepast worden.

Als in het tekstvak een woord zoals ‘sex’, ‘dating’, ‘dog’ of ‘love’ wordt getypt wordt het formulier niet meer verstuurd. Onder het tekstvak wordt een foutmelding getoond.

Het is wel een agressieve methode. Maar mails over deze onderwerpen hebben niets te maken met mijn website die IT gerelateerd is.

> Bekijk Elementor documentatie voor meer informatie

Waarom gebruik je geen plugin?

Er zijn genoeg plugins beschikbaar waarmee je bovenstaande functionaliteit krijgt. Elementor Pro Forms heeft deze functionaliteit helaas niet. Persoonlijk probeer ik het aantal plugins zo laag mogelijk te houden. Scheelt onderhoud, heeft geen invloed op de snelheid en verlaagd de kans op beveiligingsproblemen.

Als je ziet hoeveel regels PHP code je nodig hebt is dit een perfecte oplossing. Daarnaast kan je de lijst met woorden gemakkelijk wijzigen. Dit zal je overigens niet dagelijks doen.

2 reacties

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.