Webdesign Blog

reCaptcha Alternative

Mit einem Honeypot-Feld kannst du dein Kontaktformular DSGVO-konform vor Spam schützen, ohne dabei Daten an Dritte wie Google übermitteln zu müssen. In diesem Beitrag erfährst du in wenigen Schritten, wie du das auch auf deiner Website umsetzen kannst.

Was ist reCaptcha?

reCaptcha ist ein Service von Google, der dazu dient, Websites vor Spam und Missbrauch zu schützen. Es handelt sich dabei um ein System, das überprüft, ob eine Person oder ein Computerprogramm (Bot) eine bestimmte Aktion ausführt.

Es gibt verschiedene Versionen von reCaptcha, darunter die aktuelle Version reCaptcha v3, bei der künstliche Intelligenz verwendet wird, um festzustellen, ob ein Nutzer ein Mensch oder ein Bot ist, ohne dass der Nutzer ein Captcha wie zum Beispiel das Erkennen von gestreckten Buchstaben und Zahlen oder das Klicken auf bestimmte Bilder lösen muss.

reCaptcha und die DSGVO

Damit das Lösen von Captchas in reCaptcha v3 nicht mehr der Nutzer übernehmen muss benötigt Google verschieden Daten um festzustellen ob es sich um eine Person oder einen Bot handelt. Zu diesen Daten zählen:

  • IP-Adresse
  • Snapshot des Browserfensters
  • Mausbewegungen
  • Tastaturanschläge
  • Informationen zu Browser-Plugins
  • Referrer URL
  • Betriebssystem
  • Cookies
  • Verweildauer
  • Geräteeinstellungen

Da Google nicht ausreichend klar macht, welche Verarbeitungen und Zugriffe durch das Tool genau erfolgen ist es fragwürdig ob reCpatcha v3 DSGVO-konform verwendet werden kann. Will man auf reCaptcha v3 nicht verzichten, sollte man auf jeden Fall die Zustimmung der Nutzer über einen Cookie Banner einholen und die Verwendung möglichst transparent in der Datenschutzerklärung darlegen.

Honeypot als Alternative zu reCaptcha

Ein Honeypot ist ein System, das Angreifer bzw. Bots anlocken soll. Der “Honigtopf“ täuscht einen Server, eine Datenbank oder wie in unserem Beispiel ein Feld eines Kontaktformulars vor.
Ein Honeypot-Feld ist ein verstecktes Feld, das für Website Besucher nicht sichtbar ist und nur von Bots ausgefüllt werden soll. Bots scannen eine Website und füllen alle Felder aus, auch das versteckte Feld. Somit wissen wir wann es sich um einen Bot und wann um einen Menschen handelt.

honeypot-kontaktformular

Vorteile eines Honeypot

Wenn du dich für die Verwendung eines Honeypot entscheidest bist du hinsichtlich DSGVO auf der sicheren Seite, da die Spam-Abwehr direkt auf deinem Hosting/Server erfolgt und keine Nutzerdaten an Dritte übermittelt werden müssen.

Wenn du von reCaptcha auf Honeypot umsteigst verbesserst du zugleich auch die Ladezeit deiner Website.

Quelle: OOPSpam Blog

Nachteile eines Honeypot

Viele Menschen nutzen Honeypots in Formularen und erhalten so gut wie keinen Spam. Wenn deine Website mehr Besucher hat oder aus irgendeinem Grund in der Datenbank eines Spammers landet, wirst du möglicherweise von intelligenteren Bots besucht, die es schaffen können den Honeypot zu umgehen.
Ein Honeypot funktioniert nicht gegen manuell von Menschen eingereichten Spam, das ist aber auch bei reCaptcha der Fall.

Wie erstellt man ein Honeypot-Feld?

Für gängige Formular-Plugins wie Contact Form 7 für WordPress gibt es Honeypot Plugins welche relativ einfach einzurichten sind.

Ist in deinem Kontaktformular keine Honeypot Funktion integriert und es gibt auch kein Plugin dafür, kannst du in wenigen Schritten selbst ein Honeypot-Feld erstellen.

1. Ein Feld zum Kontaktformular hinzufügen

Füge deinem Kontaktformular ein Textfeld hinzu und weise diesem Feld eine CSS ID wie z.B. „phone1“ zu. Verwende für das Honeypot-Feld keine ausgefallenen oder offensichtlichen Namen wie „honeypot“ sondern etwas gängiges wie „phone“ oder „website“. Beachte auch, dass das Feld kein Pflichtfeld sein darf.

Als Placeholder Text verwenden wir „Nicht ausfüllen“, damit auch Personen die einen Screenreader verwenden das Honeypot-Feld nicht ausfüllen [ placeholder=“Nicht ausfüllen“ ].
Achte auch darauf autocomplete=“off“ zu setzen, damit der Browser das Feld nicht automatisch ausfüllt.

2. Das Feld verstecken

Damit das Feld unsichtbar für Website Besucher wird fügen wir unserer Website folgenden CSS Code hinzu.

#de_fb_phone1 { 
	display: none; 
}

Die ID [de_fb_phone1] musst du entsprechend an die von dir vergebene ID abändern.
In WordPress kannst du eigenes CSS entweder im Customizer [Design -> Customizer -> Zusätzliches CSS], über ein zusätzliches PlugIn oder im Stylesheet [style.css] deines Child Themes hinzufügen.

Nun sollte das Honeypot-Feld nicht mehr sichtbar sein.

3. Den Versand blockieren

Um die Zustellung bei ausgefülltem Honeypot-Feld zu unterbinden fügen wir unserer Website noch folgenden PHP Code hinzu.

<?php
if (!empty($_POST['de_fb_phone1'])) {
  exit;
}
?>

In WordPress geht das am einfachsten über ein Plugin wie Code Snippets.

Auch hier musst du die ID [de_fb_phone1] wieder an die von dir vergebene ID anpassen.

4. Funktion testen

Mit der F12 Taste kannst du in deinem Browser die Entwicklertools öffnen. Diese sehen je nach verwendetem Browser etwas unterschiedlich aus.
Um hier nun das Honeypot-Feld am schnellsten zu finden benutzt du am besten die Suchfunktion und gibst die CSS ID ein.
Nun füllst du das Feld aus indem du im value Attribut etwas einträgst.

Fülle auch die regulären Felder deines Formulars aus und klicke auf senden. Wenn alles korrekt eingerichtet wurde sollte jetzt kein Versand stattfinden.
Natürlich solltest du auch testen ob der Versand noch funktioniert wenn das Honeypot-Feld nicht ausgefüllt wurde 😉

Kommentare

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Neueste Beiträge

Kategorien

TAGs

Beitrag teilen