Funktion — Erheben

Ein Spam-Schutz, den niemand bestehen muss.

NumoForms filtert unsinnige Einreichungen mit drei Schichten, die ein Datenbank-Trigger durchsetzt und nicht das Formular: ein außerhalb des Bildschirms liegendes Honeypot-Feld, eine Mindestverweildauer von voreingestellt 3 Sekunden, je Umfrage einstellbar, und eine Ratenbegrenzung von 30 Antworten je Minute und Umfrage. Ein reCAPTCHA gibt es bewusst nicht. Eine Antwort, welche die Prüfungen auffällig finden, wird nicht verworfen — der Person wird gesagt, was geschehen ist, und sie kann bestätigen.

Die Prüfung sitzt in der Datenbank, nicht auf der Seite

Antworten werden in NumoForms unmittelbar aus dem Browser in die Datenbank eingetragen. Das heißt auch: Jede Regel, die nur in die Oberfläche geschrieben ist, ist ein Ratschlag. Ein Skript, das unmittelbar an die Schnittstelle sendet, führt Ihr JavaScript nie aus und sieht die Prüfung deshalb nie.

Also laufen die drei Prüfungen in einem Datenbank-Trigger. Jeder Eintrag geht hindurch, ob er von der gehosteten Umfrageseite kam, aus einer in eine andere Website eingebetteten Umfrage oder aus einem Skript, das jemand um drei Uhr morgens geschrieben hat. Dieselbe Überlegung steckt hinter Schlussdaten und Antwortobergrenzen, die ebenfalls auf Datenbankebene durchgesetzt werden, statt eine Schaltfläche zu verstecken.

Wo die Prüfungen laufen, wiegt schwerer als ihre Raffinesse. Zwei der drei Signale — der Wert im Honeypot und die verstrichene Zeit — schickt der Browser, ein eigens geschriebenes Skript kann das versteckte Feld also leer lassen und überhaupt keine Zeit senden. Die Ratenbegrenzung braucht nichts vom Client, und genau deshalb ist sie die Schicht, die auch dann noch trägt, wenn die anderen beiden entfernt sind.

Die drei Schichten

1. Honeypot

Ein Feld außerhalb des sichtbaren Bereichs, das ein Mensch beim Ausfüllen nie sieht und nie anspringt. Automatische Ausfüllprogramme befüllen in der Regel jedes Feld, das sie finden. Was mit einem befüllten Honeypot eintrifft, wurde nicht von einer Person ausgefüllt, die die Seite gelesen hat.

2. Verweildauer

Eine Untergrenze in Sekunden dafür, wie lange eine Antwort gedauert hat. Voreingestellt sind 3 Sekunden, einstellbar je Umfrage, sodass eine Beteiligung mit 40 Fragen mehr verlangen kann als ein Rückmeldeformular mit zwei. Eine fehlende Zeitangabe gilt nicht als Spam, sodass ältere Geräte und über einen Fortsetzungslink fortgesetzte Antworten weiterhin funktionieren.

3. Ratenbegrenzung

Antworten je Minute und Umfrage, voreingestellt 30. Diese Schicht braucht überhaupt nichts vom Client, und darum geht es: Sie trägt auch gegen einen Bot, der jede Angabe entfernt, auf die sich die beiden anderen Schichten stützen.

Warum es kein reCAPTCHA gibt

Das ist die Entscheidung, die in der Beschaffung am ehesten zur Sprache kommt, deshalb hier die ganze Begründung.

Es macht Google zum Unterauftragsverarbeiter Ihrer Beteiligung

Ein reCAPTCHA auf ein öffentliches Beteiligungsformular zu setzen heißt, dass bei jeder Bürgerin, die es öffnet, Daten an Google gehen, bevor eine einzige Frage beantwortet ist. Jemand in Ihrer Organisation muss diese Übermittlung dann dokumentieren, rechtfertigen und in einer Datenschutzerklärung vertreten — für ein Formular, das Meinungen zur Abfallabholung sammeln soll. NumoForms hält Umfrageinhalte und Antworten in der Londoner Region von Supabase, und die Seite zu Datenschutz und UK-DSGVO legt dar, was das in der Praxis bedeutet. Ein Werbeunternehmen in die Verarbeitungskette aufzunehmen, um eine Handvoll Schrottzeilen abzufangen, ist für eine Kommune mit öffentlichen Beteiligungen ein schlechtes Geschäft.

Es scheitert an Menschen mit Behinderungen

Aufgaben mit Bildern und Tönen sind eine gut dokumentierte Ursache für gescheiterte Einreichungen von Menschen mit Behinderungen. Unsere Seite zur Barrierefreiheit argumentiert genau gegen dieses Muster. Ein CAPTCHA auszuliefern würde einer Position widersprechen, die wir veröffentlichen — und eine Umfrage, die eine Person mit Screenreader nicht zu Ende bringen kann, ist keine Umfrage mit gutem Spam-Schutz. Sie ist eine Umfrage mit einer verzerrten Stichprobe.

Die drei Prüfungen, die NumoForms durchführt, sind unsichtbar. Niemand muss etwas beweisen, einen Bus erkennen oder verzerrte Sprache abtippen. Es gibt keine Aufgabe, an der man scheitern kann.

Eine Zurückweisung ist nie endgültig

Jede Heuristik hier hat einen ehrlichen Fall des falschen Alarms, und etwas anderes zu behaupten, wäre der Weg, echte Daten zu verlieren.

Eine Umfrage mit zwei Fragen ist wirklich in ein paar Sekunden beantwortet. Ein Raum mit dreißig Menschen bei einer Beteiligungsveranstaltung, die alle gleichzeitig den Link bekommen, erzeugt wirklich dreißig Einreichungen in derselben Minute. Aus Sicht der Datenbank sieht beides genau wie ein Angriff aus.

Deshalb wird eine auffällige Antwort nicht still weggeworfen. Der Person wird gezeigt, was geschehen ist, ihre Antworten bleiben erhalten, und sie kann sie erneut senden — beim zweiten Versuch entfällt das Signal der Verweildauer, weil ein Mensch soeben dafür eingestanden ist. Honeypot und Ratenbegrenzung gelten weiterhin, sodass eine echte Flut gebeten wird, es gleich noch einmal zu versuchen, statt durchgewunken zu werden. Damit wird der Filter für ein Skript zur Reibung und für einen Menschen zu einer einzigen zusätzlichen Berührung. Eine echte Antwort einer Beteiligung zu verlieren, ist schlimmer, als eine Schrottantwort anzunehmen — und eine Schrottantwort fällt später in Ihrer Auswertung samt Abbruchbericht ohnehin auf.

Was das nicht leistet

Klar gesagt, denn Sie finden es ohnehin heraus.

  • Kein Cloudflare Turnstile. Es ist die datenschutzfreundliche Aufgabe, die am häufigsten als Ersatz für reCAPTCHA vorgeschlagen wird, und sie ist heute nicht angebunden.
  • Keine Sperre nach IP-Adresse. Nichts hier sperrt oder begrenzt nach Adresse. Wer entschlossen ist, Einreichungen über viele Quellen verteilt und unterhalb der Grenze taktet, wird von diesen drei Schichten nicht aufgehalten.
  • Zwei der drei Signale kommen aus dem Browser. Den Wert im Honeypot und die verstrichene Zeit liefert der Client, ein eigens für Ihre Umfrage geschriebenes Skript kann beides also weglassen. Sie halten Ausfüllprogramme von der Stange auf, nicht einen gezielten Angriff; die Ratenbegrenzung ist die Schicht, die nicht auf Mitwirkung angewiesen ist.
  • Keine Inhaltsprüfung. Die Prüfungen betrachten, wie eine Antwort eingetroffen ist, nicht, was sie sagt. Beleidigender Freitext ist ein Fall für die Moderation; die einstufige Freigabe hält Antworten zurück, bis jemand sie gezeichnet hat.

Gut sind diese Schichten im gewöhnlichen Fall: automatische Ausfüllprogramme, Masseneinreichungen aus einem einzelnen Skript und das versehentliche doppelte Absenden.

Häufige Fragen zu Spam in Umfragen

Setzt NumoForms reCAPTCHA ein?

Nein, und das ist eine bewusste Entscheidung und keine Lücke. Mit reCAPTCHA würde Google bei jeder öffentlichen Beteiligung zum Unterauftragsverarbeiter, was eine Datenschutzbeauftragte anschließend begründen muss. Seine Aufgaben mit Bildern und Tönen sind zudem eine gut dokumentierte Ursache für gescheiterte Einreichungen von Menschen mit Behinderungen. Die drei Prüfungen, die NumoForms durchführt, sind unsichtbar: Es gibt keine Aufgabe, an der man scheitern kann.

Was geschieht, wenn jemand tatsächlich schneller antwortet als die Mindestverweildauer?

Der Person wird gezeigt, was geschehen ist, und sie kann die Einreichung bestätigen, die dann durchgeht. Eine Umfrage mit zwei Fragen ist wirklich in unter drei Sekunden zu beantworten, eine harte Ablehnung würde also echte Antworten wegwerfen. Eine echte Antwort einer Beteiligung zu verlieren, ist schlimmer, als eine Schrottantwort anzunehmen.

Warum werden die Spam-Prüfungen in der Datenbank durchgesetzt und nicht im Formular?

Weil Antworten unmittelbar aus dem Browser in die Datenbank eingetragen werden. Alles, was nur in der Oberfläche geprüft wird, lässt sich von einem Skript umgehen, das unmittelbar sendet; eine Prüfung in der Oberfläche ist also eine Empfehlung und keine Kontrolle. NumoForms führt Honeypot, Verweildauer und Ratenbegrenzung in einem Datenbank-Trigger aus, den jeder Eintrag durchläuft, ganz gleich, woher er kam.

Wie sind Mindestverweildauer und Ratenbegrenzung voreingestellt?

Die Mindestverweildauer liegt voreingestellt bei 3 Sekunden und lässt sich je Umfrage einstellen. Die Ratenbegrenzung liegt voreingestellt bei 30 Antworten je Minute und Umfrage. Die Ratenbegrenzung braucht nichts vom Client und gilt deshalb auch für einen Bot, der die Zeitangaben vollständig entfernt.

Blockiert NumoForms Spam anhand der IP-Adresse?

Nein. Es gibt keine Sperre auf Basis von IP-Adressen und keine Anbindung an Cloudflare Turnstile. Der Schutz besteht aus dem Honeypot, der Mindestverweildauer und der Ratenbegrenzung je Umfrage, allesamt in der Datenbank durchgesetzt.

Müll aussortieren, ohne Rätsel zu stellen.

Honeypot, Mindestverweildauer und das Antwortlimit je Umfrage laufen in einem Datenbank-Trigger, jede Antwort geht also durch sie hindurch, auf welchem Weg sie auch eintrifft. Ihre Teilnehmenden müssen nie einen Bus auf einem Bild suchen.

  • Drei Schichten: Honeypot, Verweildauer, Antwortlimit
  • Mindestverweildauer je Umfrage einstellbar, standardmäßig 3 Sekunden
  • Wer markiert wird, kann bestätigen und weitermachen
Umfrage bauen