Ratgeber

Wie schützt man ein Kontaktformular vor Spam?

Ein CAPTCHA ist nicht die einzige Möglichkeit. Mehrere unauffällige serverseitige Prüfungen können viele automatisierte Anfragen abfangen, ohne echten Besuchern zusätzliche Aufgaben zu geben.

← Alle Ratgeber

Honeypot

Ein für normale Nutzer unsichtbares Formularfeld wird von einfachen Bots häufig ausgefüllt. Ist es nicht leer, kann die Anfrage verworfen werden. Das ist unsichtbar für echte Besucher und sehr günstig umzusetzen.

Mindest-Ausfüllzeit

Wird ein Formular praktisch unmittelbar nach dem Seitenaufruf abgesendet, spricht das für Automatisierung. Eine kurze Mindestzeit ist kein alleiniger Schutz, ergänzt andere Maßnahmen aber sinnvoll.

Rate-Limit

Eine einzelne IP-Adresse sollte ein Formular nicht beliebig oft innerhalb weniger Minuten absenden können. Ein Rate-Limit reduziert Massenversand und schützt zusätzlich vor versehentlichem mehrfachen Absenden.

Serverseitige Validierung

Feldlängen, Pflichtangaben und E-Mail-Adressen müssen auf dem Server geprüft werden. JavaScript-Prüfungen im Browser sind nur Komfort, weil ein Angreifer sie umgehen kann.

Mail-Header-Injection verhindern

Werte aus Eingabefeldern dürfen nicht ungeprüft in Mail-Header übernommen werden. Zeilenumbrüche in E-Mail-Feldern und ähnliche Manipulationen müssen blockiert werden.

CSRF-Schutz

Ein zufälliges Token pro Sitzung erschwert es, das Formular von einer fremden Website aus im Namen eines Besuchers auszulösen.

Wann ein CAPTCHA sinnvoll wird

Wenn trotz der unauffälligen Maßnahmen viel automatisierter Traffic durchkommt, kann ein zusätzlicher Challenge-Dienst sinnvoll sein. Er sollte aber nicht automatisch die erste Maßnahme sein, weil er Bedienung, Datenschutz und Abhängigkeiten beeinflusst.

Was Direktnetz aktuell selbst einsetzt

Das Kontaktformular dieses Auftritts verwendet Honeypot, Mindestzeit, Rate-Limit, serverseitige Feldlängen, E-Mail-Validierung, Header-Injection-Schutz und CSRF. Es wird derzeit kein Analyse- oder Werbetracking benötigt, um das Formular zu betreiben.