Die unsichtbare Falle: Honeypot vs. Spam-Bots in NEOS CMS

Warum wir auf Honeypot statt CAPTCHA setzten
Viele Entwickler greifen bei Spam zu CAPTCHAs oder Diensten wie Google reCAPTCHA. Bevor man sich jedoch die Komplexität einer Drittanbieter-Anbindung ins Projekt holt und je nach Anbieter auch noch laufende Kosten verursacht, lohnt sich ein Blick auf einfachere Methoden.
Ein oft übersehener Aspekt ist der Datenschutz. Dienste wie Google reCAPTCHA übertragen Daten auf Server in den USA und sammeln Informationen über das Nutzerverhalten. Das ist nicht nur aus DSGVO-Sicht problematisch, sondern auch schwer zu kommunizieren. Der Honeypot kommt ohne Tracking aus, überträgt keine Daten an Dritte und ist damit datenschutzrechtlich unbedenklich.
Wir entschieden uns für einen Honeypot (auf Deutsch: Honigtopf). Die Methode ist schnell implementiert, völlig kostenfrei und kommt ohne externe Dienste aus. Das Prinzip ist simpel: Ein für Menschen unsichtbares Formularfeld, das nur Bots erkennen und ausfüllen. Wer hier Daten einträgt, enttarnt sich als Automat. Der Honeypot ist ein klassischer Quick Win: minimale Entwicklungszeit, maximale Wirkung – und das ohne die Nutzererfahrung zu beeinträchtigen.
Saubere Lösungen für NEOS CMS
Von Honeypots gegen Spam bis zu individuellen Integrationen und Optimierungen: Wir entwickeln passgenaue Lösungen für Ihr NEOS CMS.
Die Umsetzung im NEOS CMS 9 Projekt
NEOS bietet mit seinem Form Framework ideale Voraussetzungen für solche Eingriffe. Wir implementierten einen eigenen Finisher, der vor dem Versand der E-Mail prüft, ob das Honeypot Feld befüllt wurde.
Das versteckte Feld: Im Fusion Prototyp fügten wir ein zusätzliches Textfeld hinzu, komplett unsichtbar gestaltet
properties.additionalAttributes = Neos.Fusion:DataStructure {
autocomplete = 'off'
tabindex = '-1'
'aria-hidden' = 'true'
style = 'position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;'
'data-<REDACTED>' = '1'
}Das Feld ist visuell nicht vorhanden, für Screenreader nicht zugänglich und aus der Tab Reihenfolge entfernt. Perfekt getarnt für echte Nutzer.
Entscheidend ist die Namensgebung: Wir wählten einen Köder wie website oder homepage – Felder, die einfache Bots gerne automatisch befüllen, weil sie sie aus anderen Formularen als vermeintliche Pflichtfelder kennen. Je verlockender der Name für einen Bot wirkt, desto zuverlässiger wird das Feld ausgefüllt und der Bot enttarnt sich.
Wir erweitern den Standard EmailFinisher um eine Prüfung:
protected function executeInternal(): void
{
$formRuntime = $this->finisherContext->getFormRuntime();
$formValues = $formRuntime->getFormState()->getFormValues();
$identifier = $this->options['<REDCATED>'] ?? '<REDCATED>';
$value = $formValues[$identifier] ?? '';
if (trim((string)$value) !== '') {
if ($this->logger !== null) {
$this->logger->info(
sprintf('honeypot field triggered, email will be skipped (identifier: %s)', $identifier),
LogEnvironment::fromMethodName(__METHOD__)
);
}
$this->finisherContext->cancel();
return;
}
parent::executeInternal();
}Der entscheidende Trick: Der Bot bekommt trotz abgebrochener Aktion einen erfolgreichen HTTP Status Code 200 zurück. Das Formular scheint für ihn ganz normal abgeschickt zu sein. Er erhält keine Fehlermeldung und wird nicht stutzig.
Das Ergebnis: Der unmittelbare Effekt
Die Wirkung trat praktisch über Nacht ein. Vor der Implementierung gingen täglich Dutzende Spam Nachrichten ein. Danach war das Postfach nahezu sauber. Wir sprechen von einer Reduktion um 99,99%, vielleicht eine Fake-Mail pro Woche, die durchrutscht.
Der Kunde war erleichtert: "Endlich sehe ich wieder die echten Anfragen meiner Kunden. Das ist genau das, was wir brauchten."
Was wir aus dem Projekt mitnahmen
Der Honeypot ist ein perfektes Beispiel für pragmatische Problemlösung im Agentur Alltag:
- Einfachheit siegt: Keine externe API, keine Einarbeitung, kein Wartungsaufwand.
- Unsichtbar für Nutzer: Keine lästigen Rätsel, keine Barrierefreiheits Probleme.
- Sofort wirksam: Die Umsetzung dauerte keine zwei Stunden, der Effekt war sofort messbar.
- Nachhaltig: Simple Bots werden dieses Muster nicht so schnell lernen. Falls doch, können wir den Feldnamen austauschen.
Der Honeypot beweist, dass effektive Lösungen nicht komplex sein müssen. Manchmal reicht ein einfacher, aber durchdachter Trick, um ein Alltagsproblem nachhaltig zu lösen. Als Entwickler schätze ich genau solche eleganten Lösungen: Sie machen den Nutzeralltag besser, ohne ihn zu stören.
Für welche Fälle der Honeypot taugt
Diese Methode wirkt zuverlässig gegen einfache, massenhafte Bot Angriffe. Gegen gezielte Angriffe oder clevere Bots, die JavaScript ausführen und echte Browser simulieren, hilft sie nur bedingt. Aber in unserer Praxis sind 99% des Spams simpler Natur. Für den Rest gibt es dann immer noch ergänzende Maßnahmen.
Unser Fazit
Die beste Sicherheit ist oft die, die niemand sieht. Der Honeypot stört keinen echten Nutzer, kostet fast nichts in der Umsetzung und befreit den Kunden von einer echten Belastung. Als Entwickler bei den nauten schätzen wir genau solche eleganten Lösungen: Sie machen den Alltag besser, ohne Komplexität zu schaffen.
Kämpft Ihre Website auch mit Formular Spam? Dann probieren Sie es mit einem Honeypot. Sie werden überrascht sein, wie viel ein kleines unsichtbares Feld bewirken kann.


