Bricks Builder Formular gegen Spam schützen mit Honeypot DSGVO Konform

Der Bricks Builder für WordPress ist eine richtig tolle alternative zu Schwergewichten wie Elementor, ein Nachteil des Builders ist aber, dass man an einigen Stellen nicht die Menge an Erweiterungen hat wie es bei Elementor der Fall ist. Einer der Problemstellen war bislang der Spamschutz der Formulare. Mit Boardmitteln kann man hier nur mit Google Recaptcha und konsoerten arbeiten, was in Verbindung mit der DSGVO ein Problem darstellt. Seit der Version 1.7.1 bietet der Bricks Builder nun aber einen neuen Filter über den wir Formulare selbst validieren können um z.B. eigene Honeypot-Felder zu entwickeln. Einen grundlegenden Ansatz für ein DSGVO-Konformes Honeypot-Feld findet ihr nachfolgend.

Einrichtung des Honeypot-Felds

Im Formular-Builder von Bricks muss ein verborgenes Feld mit dem Attribut Namen „osu_honeypot“ angelegt werden.

PHP-Code für WordPress

Füge folgenden Code in die functions.php deines Child-Themes oder in ein eigenes Plugin ein:

				
					add_filter( 'bricks/form/validate', function( $errors, $form ) {
  $form_settings = $form->get_settings();
  $form_fields   = $form->get_fields();
  $form_id       = $form_fields['formId'];

	if(!isset( $form_fields['osu_honeypot'] ) || intval($form_fields['osu_honeypot']) < 10 ) {
		$errors[] = 'Es gab einen Fehler bei der Verarbeitung Ihrer Anfrage, bitte wenden Sie sich direkt an uns.';
	}

  return $errors;
}, 10, 2 );
				
			

JavaScript-Code

Füge diesen Code in dein Theme oder ein Custom Script ein, um das Honeypot-Feld automatisch mit einem Zeitwert zu füllen:

				
					document.addEventListener("DOMContentLoaded", function () {
    let secondsElapsed = 0;
    const inputField = document.querySelector("input[name='osu_honeypot']");

    if (!inputField) {
        console.warn("Input field with name 'osu_honeypot' not found.");
        return;
    }

    function updateTime() {
        secondsElapsed++;
        inputField.value = secondsElapsed;
    }

    setInterval(updateTime, 1000);
});
				
			

Funktionsweise

  1. Besucher kommt auf die Website → Das JavaScript startet, um die Sekunden zu zählen, die der Besucher auf der Seite verbringt. Jede Sekunde wird der Wert des versteckten Felds osu_honeypot aktualisiert.

  2. Normale Besucher brauchen in der Regel länger als 10 Sekunden, um das Formular zu finden, auszufüllen und abzusenden. Spambots hingegen füllen es oft innerhalb von wenigen Sekunden aus.

  3. Das Honeypot-Feld wird bewusst als solches benannt, um Bots dazu zu verleiten, es nicht auszufüllen. Zudem erfolgt die Wertsetzung über JavaScript, was von den meisten Spambots nicht ausgeführt wird.

Mit dieser Methode lassen sich viele Spam-Bots effektiv blockieren, ohne dass Nutzer durch Captchas oder andere umständliche Methoden gestört werden. Die Lösung hier ist natürlich noch nicht perfekt, aber ein guter Ausgangspunkt für weitere Optimierungen. Wenn Ihr diese Lösung implementiert müssen alle Formularfelder die Ihr über Bricks baut das Formularfeld „osu_honeypot“ beinhalten, sonst kommt es immer zu einer Fehlermeldung.

Foto von Pau Casals auf Unsplash

Kontakt

Bürozeiten:
Montag – Donnerstag: 9:00 – 17:00 Uhr
Freitag: 9:00 – 14:00 Uhr