Captchas: Es muss nicht immer reCAPTCHA sein

Philipp Zeder
Autor:

Philipp Zeder

Kategorie:

in

Entwicklung & Performance

Veröffentlicht am 15. Okt. 2024

Was wären Websites ohne Kontaktformulare? Oder Kommentarfelder? Sie bieten eine Austauschmöglichkeit oder gar ein Mitwirken von Website-Besuchenden. Falls du solche Möglichkeiten auf deiner Website anbietest, kennst du das Problem bestimmt: Kontaktformular- oder Kommentar-Spam.

Solche Spam-Attacken werden automatisiert durchgeführt und in der Regel hilft eine Absicherung mit einem Captcha. Captcha ist die Abkürzung für «Completely automated public turing test to tell computers and humans apart» – also ein Test, der Mensch und Maschine unterscheiden soll.

In der Regel sind diese Tests in Form von kleinen Bildrätseln sichtbar, die nur Menschen lösen können sollten. Wir bei cyon empfehlen unserer Kundschaft ebenfalls den Einsatz von Captchas, um sich vor bösen Überraschungen zu schützen.

reCAPTCHA: Der Platzhirsch

Der verbreitetste Dienst für solche Captcha-Lösungen heisst reCAPTCHA. Der Dienst wurde ursprünglich an der Carnegie Mellon University entwickelt und später von Google aufgekauft. Er definiert quasi den Standard und gilt als sehr zuverlässig.

Was viele nicht wissen: Die Zuverlässigkeit kommt nicht nur von den gut ausgewählten Rätseln. Im Hintergrund erhält jede Benutzerin und jeder Benutzer einen Fingerabdruck, der eine grosse Rolle bei Googles Turing-Test spielt. Jede Anfrage erhält einen Score mit undurchsichtigem Ranking, bei dem viele Faktoren mitspielen. Das könnten die IP-Adresse oder auch google.com-Cookies sein. Es ist davon auszugehen, dass Google hier möglichst viele verfügbare Daten hinzuzieht, weil das den Dienst zuverlässig macht.

Was einerseits hilfreich bei der Spam-Bekämpfung ist, kann aus Datenschutzsicht aber auch problematisch sein. Der Vorgang läuft im Hintergrund ab und Google kann theoretisch von jeder reCAPTCHA-ausfüllenden Person Daten sammeln. Wann wurde welche Website und zu welchem Zeitpunkt von wo aus aufgerufen? Zusammen mit all den anderen Daten, die Google über uns hat, liesse sich daraus ein sehr genaues Profil erstellen. Wer versucht, sich diesem Profiling zu entziehen, indem sie oder er zum Beispiel über das Tor-Netzwerk versucht, ein reCAPTCHA auszufüllen, sieht sich oft gleich mit mehreren und schier unlösbaren Bild-Rätseln konfrontiert.

Alternativen zu reCAPTCHA?

Falls du für deine Website nicht auf reCAPTCHA setzen willst: Es gibt einige sehr passable Alternativen zum Platzhirsch. Die meisten davon sind auch sehr einfach integrierbar. In unserem Supportcenter-Artikel «Captcha», haben wir einige dieser Lösungen für dich gesammelt. Ein kleiner Vorgeschmack:

Versteckte Formularfelder (Honeypot-Felder)

Eine bereits seit 2007 relativ gut funktionierende Methode, sind versteckte Formularfelder. Nicht speziell für deine Website geschriebene Spam-Scripts sind nicht intelligent genug, um ein Formularfeld mit dem Namen «URL» leer zu lassen. Wenn das Formularfeld mittels CSS versteckt wird, fallen 99.9% aller Spambots darauf herein. Vergessen dabei bitte nicht, über ein <label>-Element die Barrierefreiheit zu gewährleisten.

Antispam Bee für WordPress

Angesichts der Beliebtheit von WordPress, widmen wir unserem Plugin-Tipp einen eigenen Abschnitt. Antispam Bee ist ein zuverlässig arbeitendes Open-Source-Plugin, das wenig Daten sammelt und dir gleichzeitig sehr viel Kontrolle lässt.

Screenshot Antispam-Bee-Einstellungen

Antispam Bee lässt sich individuell konfigurieren.

CMS-spezifische Antispam-Erweiterungen

Neben Antispam Bee für WordPress gibt es für praktisch alle Content-Management-Systeme ein grosses Sammelsurium an Captcha-Erweiterungen. Diese bringen verschiedene Technologien von Haus aus mit und sind einfach zu installieren.

Die Plugins für die beliebtesten Systeme findest du unter folgenden Links:

Captcha oder kein Captcha?

Nicht zuletzt stellt sich aber auch immer die Frage: Sind aufdringliche Captchas wirklich nötig? Wie oft habe ich mich schon genervt, wenn ich vor dem Absenden meiner Kontaktanfrage ein mühsames Captcha ausfüllen musste. Hier gilt es abzuwägen: Ist der Einbau eines Captchas wirklich nötig oder gibt es auch einfachere Lösungen, die deine Besucherinnen und Besucher weniger ausbremsen?

Titelbild: Rock’n Roll Monkey/Unsplash

Beteilige dich an der Diskussion

20 Kommentare

Chrigi
Chrigi 17. Okt. 2024 16:08

Ich arbeite seit einiger Zeit mit keinen klassischen Captchas mehr sondern verwende CleanTalk.
Kann ich wirklich nur weiterempfehlen, ist zwar nicht kostenlos, aber filtert auch bei über 20’000 Einträgen sehr gut.

Bert Hofmänner
Bert Hofmänner 15. Okt. 2024 13:18

Ein Captcha ist immer eine problematische Lösung. Wir haben uns dafür entschieden, dass wir mit dem Formular ein Bild ausliefern. Dieses Bild wird dynamisch von einem PHP Script erzeugt. Es setzt auf der Session ein Flag. Wird das Formular nun abgeschickt, überprüfen wir beim Verarbeiten, ob dieses Flag auf der Session da ist. Wenn nicht, hat der betreffende die Formularseite nicht vollständig geladen. Wir akzeptieren in diesem Falle das Formular nicht. Dieses Verfahren hilft uns ca. 99% aller Spam Einträge zu erkennen, OHNE dass der Besucher mit Captchas generft wird. Nachteil: Die Methode ist für Blinde nicht bullet-proof. Es macht für einen Screenreader wenig Sinn, Bilder zu laden. Dann wird das Formular auch nicht aktzeptiert. Wir hatten in den letzten 10 Jahren aber noch NIE eine Reklamation in diese Richtung…

Philipp Zeder
Philipp Zeder cyon
16. Okt. 2024 11:54

Vielen Dank für den Input, Bert. Das klingt nach einer cleveren Lösung. 🙌

Dr. Franz Kauer
Dr. Franz Kauer 1. Feb. 2023 17:36

Insbesondere für kleinere Websites und zur schnellen Einbindung ist Antispam Bee eine gute Lösung, finde ich. In Bezug auf eine universell einsetzbare, etwas umfassendere Lösung stellt meines Erachtens Friendly Captcha (https://friendlycaptcha.com) eine sinnvolle Option dar. Wir setzen das System seit einiger Zeit zum Schutz unserer Web Apps ein und bietet einen verlässlichen Schutz. Uns gefallen hier neben dem Datenschutz besonders die anpassbaren Sicherheitsstufen und die Barrierefreiheit der Lösung. Allerdings ist dieser Service kostenpflichtig und daher nach meiner Meinung primär für sicherheitskritischere Bereiche einer Website oder Applikation wie Registrierungen, Logins oder Checkouts interessant.

Mona Sorcelli
Mona Sorcelli cyon
2. Feb. 2023 09:33

Vielen Dank für die Ergänzungen. 🎉

Michael Werner
Michael Werner 23. Dez. 2020 13:06

Recaptcha ist ein ladezeit Killer, die unperformanten JS dateein und die Server request gehen mir völlig auf die nerven. Wenn ich meine Seiten mit Lighthouse oder gtmetrix oder pindom teste bremst mir dieses Google Ding alles aus.
Es ist für mich unverständlich wieso das in alle Seiten eingreift anstatt nur auf den Formularseiten.

hat jemand einen Trick wie das gbegrenzt werden kann, ausserdem finde ich den Datenklau von google durch seine Tools skandalös, sie missbrauchen Ihre Monopol Stellung.
Warum greifen hier nicht nicht die Behörden ein?

Martin Theis
Martin Theis 14. Okt. 2021 16:30

Asset Clean Up plugin installieren und das plugin nur auf den gewünschten Seiten laden. Wenn Sie das Plugin noch nicht kennen das danke Sie mir später ;-).

Norbert
Norbert 8. Jan. 2021 00:25

Im Zuge einiger Überarbeitungen meiner Website inkl. Entfernung von reCaptcha ist mir dies erst so richtig bewusst geworden. Jedenfalls scheint mir (ohne nun WIRKLICH gemessen zu haben), dass sich die Ladezeiten tatsächlich erheblich verkürzt haben. Dass sie sich verkürzen, ist natürlich nur logisch, aber in DIESEM Ausmass hätte ich es dann doch nicht vermutet.

Jedenfalls Danke für Dein Beitrag!

Farid
Farid 28. Jan. 2021 11:29

Hallo Norbert

Stehe vor dem gleichen Problem bezüglich Ladezeiten. Wie sieht Deine aktuelle Lösung aus? Gruss Farid

Norbert
Norbert 8. Jan. 2021 00:28

sollte natürlich “für Deinen Beitrag” heissen …

Peter Spuhler
Peter Spuhler 30. Okt. 2020 11:14

Wir haben früher kaum Captchas benutzt und mussten dann in den letzten Jahren auf Recaptcha umsteigen. Bisher kamen kaum SPAM Nachrichten auf unseren Shop auf dem wir Bitcoin Masken vertreiben, dies hat sich jedoch in den letzten Tagen geändert. Offenbar ist das Recaptcha von Google via AI/ML geknackt worden und es kommen vermehrt Spamnachrichten auf via Formular durch.Wir sind nun gezwungen das Kontaktformular gänzlich zu entfernen.

NetHawk
NetHawk 20. Feb. 2020 12:06

Was ich auf jeden Fall mache ist folgendes:

1. Ein Zufallstoken in einer Session-Variable ablegen
2. Das Zufallstoken in ein verstecktes Formularfeld ablegen
3. Bei der Auswertung Formularfeld mit Sessionvariable vergleichen

Sind Session- und POST-Variable unterschiedlich, wird zurück aufs Formular geleitet.

Damit zieht man schon mal die hässigsten Spambots aus dem Verkehr, ohne den User zu nerven. Bei vielen Kundenwebsites, die nicht hyperprominent sind, reicht diese Massnahme bereits völlig aus. No Spam, ausser jemand sitzt wirklich an einem Browser davor und füllt das Formular aus. Kommt aber recht selten vor, die meisten Spammer nutzen wohl Scripts und natürlich könnten die clever genug gemacht werden, dass die obige Methode nicht mehr funktioniert, aber warum sollte man, wenn es noch so viele ungeschützte Formulare gibt, die einfacher zu überlisten sind. Auch Spammer gehen auf die Low Hanging Fruit los.

dominique
dominique 18. Feb. 2020 19:33

Jetzt müsst ihr das nur noch auf eurer eigener WAF so umsetzten ;)

Philipp Zeder
Philipp Zeder cyon
19. Feb. 2020 09:27

Der entsprechende Request ist bereits beim Hersteller der WAF platziert :)

Rupert
Rupert 7. Feb. 2020 22:09

Ich benutze sehr oft ein Frage / Antwort Feld, welche die Benutzer eingeben müssen. z.B: wie ist die Farbe von Gras? Die Antwort wird niemals ein Bot beantworten können ;)
Problem mit Spam gelöst…..oder was meint ihr?

H4CK3R
H4CK3R 15. März 2021 18:15

Naja. einmal den Bot anpassen und los gehts… Also das kann man schon versuchen, nur wenn man zu bekannt wird bringt das früher oder später fast nichts. Ich würde Captcha meist empfehlen, aber erst mal umschauen was es alles gibt.
VG

Philippe
Philippe 7. Jan. 2021 22:04

Dann stell die Frage doch mal Alexa, Google Assistant oder Siri… AI hebelt grad sehr viele der bisher bekannten captcha Methoden aus…

Philipp Zeder
Philipp Zeder cyon
10. Feb. 2020 17:26

Die Lösung ist oft denkbar einfach, klasse :)

Bert Hofmänner
Bert Hofmänner 7. Feb. 2020 16:33

Früher hatten wir die Zeit gemessen, welche zwischen der Anzeige des Formulars und dem Abschicken vergangen ist. Alles was unter 5 Sekunden lag, haben wir als SPAM abgelehnt. Das hat leider nicht zuverlässig funktioniert. Was immer noch sehr gut funktioniert, ist ein Bild abzurufen, welches wir über ein PHP generieren. Wird das Bild geladen, setzen wir einen OK-Wert auf der Session. Die meisten Formularspamer laden die Bilder nicht. Der Schutz funktioniert sehr gut. Allerdings ist zu beachten, dass dieses Verfahren für Screenreader ein NO-GO sein kann.

Philipp Zeder
Philipp Zeder cyon
10. Feb. 2020 17:21

Merci für die Insights, Bert.