Spam über Kontaktformular verhindern
Gestern abend erhielt ich einen Anruf eines Kunden, sein Rootserver sei überlastet. Grund dafür waren Tausende Spammails die über ein unsicheres Kontaktformular versendet wurden und auf Zustellung warteten. Nicht nur die Bounces (Mails die zurückkommen da der Empfänger nicht existiert) sondern vor allem der Imageschaden sind ein Problem. Als Absender taucht ja dann die eigene Domain auf. Grund genug für ein paar Tips zum Thema spamsichere Formulare.
Die folgenden Punkte verhelfen zum spamfreien Formular
1. Usereingaben immer filtern (z.B. Zeilenumbrüche)
2. Felder unbedingt auf Plausibilität prüfen
3. HTTP-Header auf Existenz und Gültigkeit prüfen
4. Zeitfenster für Gültigkeit der Formulardaten bestimmen
5. Mehrfaches Abschicken verhindern
6. eMail Adressen in HIDDEN-Feldern übergeben.
7. Ausschließlich POST-Variablen verarbeiten
8. falls möglich, nur eingeloggte Benutzer zulassen
10. Kopie der Fehlversuche an einen Überwachungsaccount senden
Es gibt mehrere Wege das umzusetzen. Gute Ideen sind:
- Captchas (Buchstabenkombinationen die abgetippt werden müssen)
- logische Prüfungen (eine deutsche PLZ hat 5 Ziffern)
- Zeitverzögerungen (Spammer sind ungeduldig. Alles muss ratzfatz gehen)
Fertige Formulare
Es gibt zahlreiche Quellen aus den Sie sich bedienen dürfen. Hier nenne ich einmal drei:
Einen interessanten Ansatz stellt sicher auch der Bausatz von Dr. Web dar.
Eine weitere Möglichkeit Spam zu erkennen findet man hier.
Hallo Netztaucher,
auf meiner Seite habe ich passend zu dem Artikel auch eine weiterführende Erklärung inklusive einer PHP-Klasse, mit der man Spam über Kontakformulare verhinder kann.