Moin.
... mehr als X @-Zeichen vorkommen, ist irgendwas faul.
Eine solche Abwehrmaßnahme hat mir schon einige Kommentare eingebracht, ich tausche nun @ gegen *at*, damit sind Mailadressen noch lesbar, aber ungefährlich, so das Script den Inhalt nicht sowieso als Spam deklariert, s.u.
Aber so ab 5 @-Zeichen wird die Sache dann doch suspekt.
Ein Bot kommt zum Testen mit einem @ aus, und zwar im zusätzlichen bcc: Damit zieht der Schutz nur, wenn z.B. versucht wird gleich massenhaft Mails zu versenden.
Dann zähle ich die im POST-Text gefundenen Wörter, und summiere die Vorkommen typischer Mail-Injection-Texte: "bcc:", "mime-type:", "7bit", ... - wenn von denen eine gewisse Anzahl enthalten ist, gebe ich einfach HTTP-Status 404 als Antwort auf den Sendeversuch zurück. Sozusagen mein virtueller Stinkefinger.
Das ist schon wesentlich wirkunsvoller - das Spamaufkommen eines so ähnlich überprüften Formulars ist bei mir auf 0 gesunken - Versuche gibt es trotzdem reichlich, wie ich am Logfile erkennen kann.
Natürlich kennen die Bots diesen Schutz auch und versuchen es mit unterschiedlichen Schreibweisen (GROSS/klein) der "Schlüsselwörter". Der Formularschutzmechnismus muß damit umgehen können.
Gruß Frank