Alle Beiträge

Kontaktformular ohne Captcha: was Spam wirklich aufhält

Auf unserer Kontaktseite steht kein Captcha. Was stattdessen im Formular steckt, was das im Alltag aufhält, was es durchlässt und warum ein Captcha für eine kleine Firmenseite meist die teuerste der möglichen Lösungen ist.

Ein Formular mit einem zusätzlichen, für Menschen unsichtbaren Feld, daneben der Titel des Beitrags

Über die Hälfte des Verkehrs im Netz kommt inzwischen von Maschinen. Der Bad Bot Report von Imperva zählt für 2025 53 Prozent automatisierte Zugriffe, ein Jahr davor waren es 51 Prozent. Und trotzdem steht auf unserer Kontaktseite kein Captcha.

Das ist eine Entscheidung mit Gründen, und die stehen hier. Mit dem, was das Formular stattdessen tut, mit dem Test, den wir dagegen gefahren haben, und mit dem Teil, der offen bleibt.

Was ein Captcha kostet

Ein Rätsel vor dem Absendeknopf wirkt wie eine kleine Maßnahme. Es hat drei Rechnungen, die getrennt aufgemacht werden sollten.

Die erste zahlen die Besucher, die schlecht sehen. Das W3C hat dazu eine eigene Note veröffentlicht, „Inaccessibility of CAPTCHA" vom 16. Dezember 2021. Der Kernsatz daraus: Ein Entwurfsmuster, das vom Nutzer mehrere Versuche als Normalfall erwartet, ist von Anfang an ausgrenzend. Die Tonalternative bei reCAPTCHA v2 braucht laut Googles eigener Anleitung mehr als acht Schritte, vom Finden des Knopfes bis zur erneuten Eingabe, wenn die Sitzung abgelaufen ist. Seit Juni 2025 gilt das Barrierefreiheitsstärkungsgesetz, und Kontaktformulare sind für viele Dienste der Weg zum Vertragsschluss. Mehr dazu steht in unserem Beitrag zur barrierefreien Website.

Die zweite zahlt der Datenschutz. Bei Google reCAPTCHA hat sich zum 2. April 2026 etwas Wesentliches geändert: Google tritt seitdem als Auftragsverarbeiter nach Artikel 28 DSGVO auf. Damit ist die Rolle geklärt, die vorher strittig war. Zwei Fragen bleiben. Die Daten gehen weiterhin in die USA, und eine vollständige Übersicht dessen, was erhoben wird, gibt es nicht. Das österreichische Bundesverwaltungsgericht hat 2024 festgestellt, dass reCAPTCHA technisch nicht erforderlich ist, womit eine Einwilligung nötig wird. Eine Einwilligung vor dem Absenden eines Formulars ist genau die Hürde, die man vermeiden wollte.

Die dritte zahlt der Betrieb. Jedes zusätzliche Element vor dem Absendeknopf kostet Anfragen. Bei einem Formular mit fünf Anfragen im Monat fällt eine verlorene Anfrage sofort auf, bei einem mit fünfhundert geht sie in der Statistik unter. Kleine Firmenseiten sitzen im ersten Fall.

Was bei uns im Formular steckt

Baustein Was er tut Woher er kommt
Honigtopf-Feld Ein unsichtbares Feld. Ist es ausgefüllt, wird die Eingabe verworfen Form-Plugin, Feldtyp honeypot
Einmalkennung Jedes Formular trägt eine Kennung, die zur Sitzung gehört. Fehlt sie oder passt sie nicht, bricht die Verarbeitung ab Grav, form-nonce
Doppelsperre Dieselbe Formularkennung wird ein zweites Mal abgewiesen refresh_prevention: true
Pflichtfelder und Auswahllisten Zwei der Angaben sind Auswahllisten mit festen Werten. Andere Werte fallen bei der Prüfung durch Feldtyp select mit options
Einwilligung als Pflichthaken Ein Kästchen, das gesetzt sein muss Feldtyp checkbox mit required
Serverseitige Prüfung Alle Regeln laufen auf dem Server. Was im Browser passiert, zählt für die Annahme nicht Grav, validate
Zeitstempel, seit 27.09. Das Formular trägt den signierten Zeitpunkt, zu dem die Seite ausgeliefert wurde. Wer in unter drei Sekunden absendet oder den Wert fälscht, sammelt Punkte eigenes Plugin, Feldtyp zeitstempel
Inhaltsprüfung, seit 27.09. Kurzlinks, Abmeldeformeln von Massenversendern, typische Sätze aus Betrug und Linkhandel, bekannte Absender und Ähnlichkeit mit bereits aussortierten Nachrichten geben Punkte. Ab drei Punkten geht die Nachricht in die Quarantäne eigenes Plugin, Schritt spamcheck

Das sind acht Prüfungen, und keine davon verlangt vom Besucher etwas. Die Kosten liegen bei null Sekunden Wartezeit, null zusätzlichen Klicks und null übermittelten Daten an Dritte.

Der Honigtopf im Einzelnen

Das Feld steht im Seitenkopf mit zwei Zeilen:

- name: hinweis
  type: honeypot

Im Quelltext kommt daraus ein Eingabefeld mit vier Eigenschaften, die zusammengehören:

<input aria-hidden="true" tabindex="-1" autocomplete="off"
       style="visibility:hidden;position:absolute;height:1px;width:1px"
       class="form-honeybear" name="data[hinweis]" value="" />

aria-hidden hält es aus der Vorlesereihenfolge heraus, tabindex="-1" aus der Tabulatorreihenfolge, autocomplete="off" verhindert, dass der Browser es von sich aus füllt, und die Angaben zur Sichtbarkeit nehmen es aus dem Bild. Ein Mensch begegnet diesem Feld auf keinem der vier Wege. Ein Programm, das den Quelltext liest und alle Felder füllt, begegnet ihm sofort.

Das letzte Detail ist wichtiger, als es aussieht: Ein Honigtopf, der mit display:none versteckt wird, fliegt bei manchen Ausfüllhilfen auf. Die Kombination aus visibility:hidden und einer Fläche von einem Pixel ist die verbreitetere Lösung, weil sie für das Programm wie ein normales Feld aussieht.

Nachgemessen

Beschreibungen sind billig. Wir haben deshalb eine Anfrage an unser eigenes Formular geschickt, mit allen Pflichtfeldern, gültiger Einmalkennung und einem ausgefüllten Honigtopf-Feld. Antwort des Servers:

HTTP 200
<div class="notices error red"><p>Are you a bot?</p></div>

Die Eingabe wurde verworfen, gespeichert wurde nichts, eine Benachrichtigung ging nicht hinaus. Die Prüfung greift also.

Aufgefallen ist dabei etwas anderes: Die Meldung steht auf Englisch, auf einer Seite, die auf Deutsch, Englisch und Spanisch läuft. Sie kommt als feste Zeichenkette aus dem Form-Plugin und geht an den Sprachdateien vorbei. Ein Mensch bekommt sie selten zu sehen, ein falsch positiver Fall reicht aber aus. Das steht jetzt auf unserer Liste.

Was das durchlässt

Der ehrliche Teil, und er ist kurz.

Gezielte Angriffe kommen durch. Wer ein Formular einmal von Hand ansieht, erkennt das Honigtopf-Feld in zwei Minuten und lässt es beim nächsten Mal leer. Der Schutz wirkt gegen Programme, die über viele Seiten hinweg blind ausfüllen, und genau das ist die Masse.

KI-Agenten sind ein neuer Fall. Imperva beschreibt für 2026 eine eigene Kategorie von Zugriffen: Systeme, die Aufgaben für Menschen erledigen und dabei Seiten wie ein Browser darstellen. Ein solcher Agent sieht das unsichtbare Feld genauso wenig wie ein Mensch. Gegen ihn hilft der Honigtopf nicht.

Werbeanfragen von Hand kommen beim ersten Mal durch. Die Nachricht einer Agentur aus Übersee, die uns Verlinkungen verkaufen möchte, ist technisch eine korrekte Anfrage. Markieren wir sie als Spam, kennt der Filter danach den Absender und den Wortlaut, und die zweite landet in der Quarantäne.

Wie viele Versuche der Honigtopf abweist, wissen wir nicht, und der Grund dafür gefällt uns: Wir zählen sie nicht. Eine Statistik darüber hieße, Zugriffe zu protokollieren und aufzubewahren, und das ist mehr Datenverarbeitung als die Sache wert ist.

Gezählt haben wir, was durchkam, und dabei ist uns ein Fehler unterlaufen. Hier stand bis zum 27. September, im Ordner lägen dreizehn echte Anfragen. Das stimmt nicht. Am 19. September lagen dort dreizehn Eingänge: vier eigene Testläufe und neun Nachrichten mit Werbung oder Betrug. Alle neun waren an den sechs Prüfungen vorbeigekommen, die damals liefen. Darunter waren Angebote für Verlinkungen, eine angeblich schließende Adressdatenbank, eine Erbschaftsgeschichte und ein Kurzlink auf eine Seite für Sexkontakte. Eine Beschwerde darüber, dass jemand das Formular nicht abschicken konnte, gab es bis heute keine.

Was seit dem 27. September dazukommt

Die neun Nachrichten haben uns gezeigt, wo die Lücke liegt. Sie kamen von Programmen, die die Seite wie ein Browser darstellen, oder von Menschen. Beide füllen das Formular so aus, wie es gedacht ist. Verraten haben sie sich im Text: Kurzlinks, die Abmeldeformel eines Massenversenders, immer wieder dieselben Absender.

Deshalb laufen jetzt die Stufen 1 und 3 aus der Tabelle unten. Jede Nachricht bekommt Punkte für solche Anzeichen und für ein verdächtig schnelles Absenden. Ein einzelner Link zählt dabei nie, Interessenten nennen ihre bisherige Seite. Ab drei Punkten geht die Nachricht in eine Quarantäne. Wer sie geschickt hat, sieht dieselbe Bestätigung wie bei jeder Anfrage und erfährt so nichts darüber, woran er gescheitert ist. Landet eine echte Anfrage dort, holen wir sie mit einem Klick zurück, und ihr Absender kommt auf eine Liste, die der Filter danach durchlässt. Nach acht Monaten löschen sich die Einträge in der Quarantäne von selbst.

Der Filter lernt dabei mit. Ist er sich sehr sicher, setzt er den Absender auf eine Sperrliste, und dasselbe passiert bei jeder Nachricht, die wir von Hand als Spam markieren. Außerdem vergleicht er jede neue Nachricht mit allem, was in der Quarantäne liegt. Dieselbe Werbung mit anderem Namen und anderer Adresse fällt so über die Ähnlichkeit auf.

Nachgemessen haben wir das auch. Alle elf Nachrichten mit Werbung oder Betrug, die bis zum 26. September angekommen waren, haben wir noch einmal durch das Formular geschickt, dazu vier selbst geschriebene Anfragen, wie sie ein Interessent schicken würde. Zehn der elf landeten sofort in der Quarantäne. Die elfte, ein höflich formuliertes Angebot zum Linktausch ohne Link, kam durch. Nach einem Klick auf „Als Spam markieren“ fing der Filter dieselbe Nachricht beim zweiten Mal ab. Alle vier Anfragen landeten im Posteingang.

Die Listen im Filter haben wir mit diesen elf Nachrichten vor Augen geschrieben. Bei neuer Werbung wird die Quote niedriger liegen. Für die Quarantäne speichern wir die Nachricht so, wie sie ankam, und die Gründe dazu. IP-Adressen speichern wir weiterhin keine.

Was wir bei mehr Druck tun

In dieser Reihenfolge, weil jede Stufe mehr kostet als die davor:

Stufe Maßnahme Kosten für Besucher
1 Zeitfenster prüfen, sehr schnelle Eingänge aussortieren keine
2 Limit pro IP-Adresse und Stunde im Webserver keine
3 Inhaltsprüfung auf Verweise und bekannte Muster keine, falsche Treffer holen wir aus der Quarantäne zurück
4 Captcha ohne Rätsel, etwa Friendly Captcha oder Altcha eine kurze Rechnung im Hintergrund
5 Klassisches Rätsel-Captcha Zeit, Frust und verlorene Anfragen

Stufe 5 steht der Vollständigkeit halber da. Seit dem 27. September laufen bei uns die Stufen 1 und 3. Für Stufe 2 ist die Menge zu klein: elf Nachrichten in acht Wochen.

Was du heute tun kannst

  1. Sieh nach, was dein Formular an Dritte schickt. Ein Blick in den Quelltext der Seite genügt: Steht dort ein Aufruf zu google.com/recaptcha, geht bei jedem Aufruf eine Verbindung dorthin, auch bei Besuchern, die das Formular nie absenden.
  2. Prüfe, ob ein Honigtopf-Feld vorhanden ist. In WordPress bringen die verbreiteten Formular-Erweiterungen eines mit, es ist häufig nur abgeschaltet.
  3. Schick dir selbst eine Testanfrage und sieh nach, ob sie ankommt, wo sie ankommt und wie lange das dauert. Formulare fallen still aus, und niemand merkt es.
  4. Zähl deine Anfragen der letzten drei Monate. Unter zwanzig im Monat rechtfertigt kaum ein Captcha den Verlust einer einzigen echten Anfrage.
  5. Wenn ein Captcha bleiben soll, hol die Einwilligung ein und nenne es in der Datenschutzerklärung.

Wenn du nicht sicher bist, was dein Formular an wen schickt: Schreib uns kurz, mit der Adresse der Seite. Wir sehen uns den Quelltext an und sagen dir, was drinsteckt. Das kostet nichts.

Quellen

Stand dieses Beitrags

Berichtigt: Unter den ersten dreizehn Eingängen war keine echte Anfrage, hier stand das Gegenteil. Neu sind Zeitstempel, Inhaltsprüfung und Quarantäne im Formular.

Häufige Fragen zum Spamschutz im Formular

Was ist ein Honigtopf-Feld?

Ein zusätzliches Eingabefeld im Formular, das für Menschen unsichtbar bleibt und für Maschinen wie jedes andere Feld aussieht. Ein Programm, das alle Felder ausfüllt, füllt auch dieses aus. Kommt darin etwas an, wird die Eingabe verworfen. Der Besucher sieht das Feld nie, ein Screenreader liest es nicht vor, und mit der Tabulatortaste ist es nicht erreichbar.

Ist ein Captcha für ein Kontaktformular Pflicht?

Es gibt keine Vorschrift, die ein Captcha verlangt. Pflicht ist der Schutz der verarbeiteten Daten nach Artikel 32 DSGVO, und dafür zählt das Ergebnis. Ein Formular, das Eingaben serverseitig prüft, Massenversuche abweist und nichts öffentlich sichtbar macht, erfüllt das auch ohne Rätselbild.

Darf ich Google reCAPTCHA einfach einbinden?

Seit dem 2. April 2026 tritt Google dabei als Auftragsverarbeiter auf, davor war die Rolle ungeklärt. Damit rückt Artikel 6 Absatz 1 Buchstabe f DSGVO als Rechtsgrundlage in Reichweite. Offen bleiben die Übermittlung in die USA und die Frage, was genau erhoben wird. Das österreichische Bundesverwaltungsgericht hat 2024 entschieden, dass reCAPTCHA technisch nicht erforderlich ist und deshalb eine Einwilligung braucht. Wer es einsetzt, sollte diese Einwilligung einholen und im Datenschutzhinweis benennen.

Hält ein Honigtopf-Feld auch KI-Agenten auf?

Einen Teil davon. Ein Agent, der ein Formular anhand des Quelltexts ausfüllt, sieht dasselbe wie jedes andere Programm und tappt hinein. Ein Agent, der die Seite wie ein Browser darstellt und nur sichtbare Felder bedient, kommt durch. Gegen den zweiten Fall helfen Prüfungen am Inhalt und am Tempo, und am Ende die Antwort eines Menschen.

Was ist mit Rate-Limits und Sperrlisten?

Ein Limit pro IP-Adresse und Stunde gehört in den Webserver und kostet keine Zeile im Formular. Es lohnt sich, sobald viele Versuche in kurzer Zeit kommen. Eine Sperrliste für Absender führen wir seit dem 27. September selbst: Jede Nachricht, die wir als Spam markieren, setzt ihren Absender darauf, und die nächste von dort landet in der Quarantäne.

Was passiert mit Nachrichten in der Quarantäne?

Sie bleiben liegen, ohne Benachrichtigung und außerhalb der Liste der Anfragen. Wer sie geschickt hat, sieht dieselbe Bestätigung wie bei jeder Anfrage. Landet dort eine echte Anfrage, holen wir sie mit einem Klick zurück. Nach acht Monaten löschen sich die Einträge von selbst.

Welches Captcha würdet ihr nehmen, wenn es eins sein muss?

Eines, das ohne Rätsel auskommt und ohne Übermittlung in die USA. Friendly Captcha rechnet im Hintergrund eine Aufgabe und ist nach WCAG 2.2 Stufe AA geprüft, Altcha arbeitet nach demselben Prinzip als freie Software auf dem eigenen Server. Cloudflare Turnstile ist bequem und liegt datenschutzrechtlich zwischen beiden. Vor der Auswahl steht die Frage, ob die Menge an Spam das Hindernis überhaupt rechtfertigt.